Esempio n. 1
0
 public void SetString(int ordinal, string value, bool isPrimary = false)
 {
     if (_found && !isPrimary)
     {
         _resultSet.SetString(ordinal, value);
     }
     else if (!_found)
     {
         _newRecord.SetString(ordinal, value);
     }
 }
Esempio n. 2
0
        public int StoreOutboxMessage(OutgoingTwilioMessage msgout)
        {
            int id = 0; // ID of the inserted SQL CE record

            // This results to
            // INSERT INTO User (FirstName, LastName) VALUES ('test','test'),('test','test'),... ;
            SqlCeCommand cmd = dbConnection.CreateCommand();

            cmd.CommandText = TableOutbox;
            cmd.CommandType = CommandType.TableDirect;
            SqlCeResultSet       rs  = cmd.ExecuteResultSet(ResultSetOptions.Updatable | ResultSetOptions.Scrollable);
            SqlCeUpdatableRecord rec = rs.CreateRecord();

            try
            {
                // DEBUG

                /*
                 * App.logger.Log("DBStore.StoreDataEntries(): Storing new entry:\n" +
                 *          "\ttimestamp: " + qlmActivation.Timestamp +
                 *          "\tkey: " + qlmActivation.LicenseKey +
                 *          "\texpiration: " + qlmActivation.ExpirationDateTime);
                 */

                rec.SetSqlDateTime(1, DateTime.Now);
                rec.SetString(2, msgout.From);
                rec.SetString(3, msgout.To);
                rec.SetString(4, msgout.Action);
                rec.SetString(5, msgout.Method);
                rec.SetString(6, msgout.Body);
                rec.SetString(7, msgout.Client);
                rs.Insert(rec);

                // Get this inserter record ID
                cmd.CommandText = "SELECT @@IDENTITY";
                cmd.CommandType = CommandType.Text;
                id = Convert.ToInt32(cmd.ExecuteScalar());

                msgout.id = id; // Assign id to this message for further referencing from message to its DBStore record

                // DEBUG
                App.logger.Log("DBStore.StoreOutboxMessage() storing outbox message from " + msgout.From + " to " + msgout.To + ", ID=" + id);
            }
            catch (Exception ex)
            {
                var message = "! Error in DBStore.StoreOutboxMessage(): " + ex.Message + "\n" + ex.TargetSite;
                App.logger.Log(message);
            }

            cmd.Dispose();

            return(id);
        }
        private static void SetData(SqlCeUpdatableRecord rec, int index, Type type, TypeConvertableWrapper col)
        {
            switch (Type.GetTypeCode(type.GetType()))
            {
            case TypeCode.String:
                rec.SetString(index, col.String);
                break;

            case TypeCode.Int16:
                rec.SetInt16(index, col.Int16);
                break;

            case TypeCode.Int32:
                rec.SetInt32(index, col.Int);
                break;

            case TypeCode.Int64:
                rec.SetInt64(index, col.Int);
                break;

            case TypeCode.Byte:
                rec.SetSqlByte(index, col.Byte);
                break;

            case TypeCode.DateTime:
                rec.SetSqlDateTime(index, col.DateTime);
                break;

            case TypeCode.Decimal:
                rec.SetDecimal(index, col.Decimal);
                break;

            default:
                throw new ArgumentException(Type.GetTypeCode(type.GetType()).ToString() + "型には対応していません。");
            }
        }
Esempio n. 4
0
        public bool StoreInboxMessage(IncomingTwilioMessage msgin)
        {
            bool retVal = true;

            int id = 0; // ID of the inserted SQL CE record

            // This results to
            // INSERT INTO User (FirstName, LastName) VALUES ('test','test'),('test','test'),... ;
            SqlCeCommand cmd = dbConnection.CreateCommand();

            cmd.CommandText = TableInbox;
            cmd.CommandType = CommandType.TableDirect;
            SqlCeResultSet       rs  = cmd.ExecuteResultSet(ResultSetOptions.Updatable | ResultSetOptions.Scrollable);
            SqlCeUpdatableRecord rec = rs.CreateRecord();

            try
            {
                // DEBUG

                /*
                 * App.logger.Log("DBStore.StoreDataEntries(): Storing new entry:\n" +
                 *          "\ttimestamp: " + qlmActivation.Timestamp +
                 *          "\tkey: " + qlmActivation.LicenseKey +
                 *          "\texpiration: " + qlmActivation.ExpirationDateTime);
                 */

                rec.SetSqlDateTime(1, msgin.Timestamp);
                rec.SetString(2, msgin.AccountSid);
                rec.SetString(3, msgin.ApiVersion);
                rec.SetString(4, msgin.Body);
                rec.SetString(5, msgin.From);
                rec.SetString(6, msgin.FromCity);
                rec.SetString(7, msgin.FromCountry);
                rec.SetString(8, msgin.FromState);
                rec.SetString(9, msgin.FromZip);
                rec.SetString(10, msgin.MessageSid);
                rec.SetString(11, msgin.NumMedia);
                rec.SetString(12, msgin.NumSegments);
                rec.SetString(13, msgin.SmsSid);
                rec.SetString(14, msgin.SmsStatus);
                rec.SetString(15, msgin.ToState);
                rec.SetString(16, msgin.To);
                rec.SetString(17, msgin.ToCity);
                rec.SetString(18, msgin.ToCountry);
                rec.SetString(19, msgin.ToZip);
                rec.SetString(20, msgin.MediaURLs);
                rs.Insert(rec);

                // Get this inserter record ID
                cmd.CommandText = "SELECT @@IDENTITY";
                cmd.CommandType = CommandType.Text;
                id = Convert.ToInt32(cmd.ExecuteScalar());

                // DEBUG
                App.logger.Log("DBStore.StoreInboxMessage() storing inbox message from '" + msgin.From + "' to '" + msgin.To + "', ID=" + id);
            }
            catch (Exception ex)
            {
                var message = "! Error in DBStore.StoreInboxMessage(): " + ex.Message + "\n" + ex.TargetSite;
                App.logger.Log(message);

                retVal = false;
            }

            cmd.Dispose();

            return(retVal);
        }
Esempio n. 5
0
        /// <summary>
        /// Returns generated Id.
        /// </summary>
        /// <returns></returns>
        public static Int32 Write_Level1(Level1 level1, SqlCeConnection conn)
        {
            Dictionary <string, Int32> idBag = new Dictionary <string, int>();

            // Level1
            using (SqlCeCommand cmd = new SqlCeCommand(level1.GetType().Name, conn))
            {
                cmd.CommandType = System.Data.CommandType.TableDirect;
                using (SqlCeResultSet rs = cmd.ExecuteResultSet(ResultSetOptions.Scrollable | ResultSetOptions.Updatable))
                {
                    SqlCeUpdatableRecord r = rs.CreateRecord();
                    r.SetString(1, level1.Value);                                         // Payload
                    rs.Insert(r, DbInsertOptions.PositionOnInsertedRow);
                    idBag[level1.GetType().Name] = rs.GetInt32(0);
                }
            }

            foreach (var level2 in level1.levels)                                         // Payload
            {
                // Level2
                using (SqlCeCommand cmd = new SqlCeCommand(level2.GetType().Name, conn))
                {
                    cmd.CommandType = System.Data.CommandType.TableDirect;
                    using (SqlCeResultSet rs = cmd.ExecuteResultSet(ResultSetOptions.Scrollable | ResultSetOptions.Updatable))
                    {
                        SqlCeUpdatableRecord r = rs.CreateRecord();
                        r.SetInt32(GetOrdinal(r, level2.GetType(), level1.GetType()), idBag[level1.GetType().Name]);        // foreign key
                        r.SetString(1, level2.Value);                                                                       // payload
                        rs.Insert(r, DbInsertOptions.PositionOnInsertedRow);
                        idBag[level2.GetType().Name] = rs.GetInt32(0);
                    }
                }

                foreach (var level3 in level2.levels)
                {
                    using (SqlCeCommand cmd = new SqlCeCommand(level3.GetType().Name, conn))
                    {
                        cmd.CommandType = System.Data.CommandType.TableDirect;
                        using (SqlCeResultSet rs = cmd.ExecuteResultSet(ResultSetOptions.Scrollable | ResultSetOptions.Updatable))
                        {
                            SqlCeUpdatableRecord r = rs.CreateRecord();
                            r.SetInt32(GetOrdinal(r, level3.GetType(), level2.GetType()), idBag[level2.GetType().Name]);
                            r.SetString(1, level3.Value);
                            rs.Insert(r, DbInsertOptions.PositionOnInsertedRow);
                            idBag[level3.GetType().Name] = rs.GetInt32(0);
                        }
                    }

                    foreach (var level4 in level3.levels)
                    {
                        using (SqlCeCommand cmd = new SqlCeCommand(level4.GetType().Name, conn))
                        {
                            cmd.CommandType = System.Data.CommandType.TableDirect;
                            using (SqlCeResultSet rs = cmd.ExecuteResultSet(ResultSetOptions.Scrollable | ResultSetOptions.Updatable))
                            {
                                SqlCeUpdatableRecord r = rs.CreateRecord();
                                r.SetInt32(GetOrdinal(r, level4.GetType(), level3.GetType()), idBag[level3.GetType().Name]);
                                r.SetString(1, level4.Value);
                                rs.Insert(r, DbInsertOptions.PositionOnInsertedRow);
                                idBag[level4.GetType().Name] = rs.GetInt32(0);
                            }
                        }

                        foreach (var level5 in level4.levels)
                        {
                            using (SqlCeCommand cmd = new SqlCeCommand(level5.GetType().Name, conn))
                            {
                                cmd.CommandType = System.Data.CommandType.TableDirect;
                                using (SqlCeResultSet rs = cmd.ExecuteResultSet(ResultSetOptions.Scrollable | ResultSetOptions.Updatable))
                                {
                                    SqlCeUpdatableRecord r = rs.CreateRecord();
                                    r.SetInt32(GetOrdinal(r, typeof(Level5), typeof(Level4)), idBag[level4.GetType().Name]);
                                    r.SetString(1, level5.Value);
                                    rs.Insert(r, DbInsertOptions.PositionOnInsertedRow);
                                }
                            }
                        }
                    }
                }
            }

            return(idBag[level1.GetType().Name]);
        }