예제 #1
0
        ///<summary>Inserts one EmailMessageUid into the database.  Provides option to use the existing priKey.</summary>
        public static long Insert(EmailMessageUid emailMessageUid, bool useExistingPK)
        {
            if (!useExistingPK && PrefC.RandomKeys)
            {
                emailMessageUid.EmailMessageUidNum = ReplicationServers.GetKey("emailmessageuid", "EmailMessageUidNum");
            }
            string command = "INSERT INTO emailmessageuid (";

            if (useExistingPK || PrefC.RandomKeys)
            {
                command += "EmailMessageUidNum,";
            }
            command += "MsgId,RecipientAddress) VALUES(";
            if (useExistingPK || PrefC.RandomKeys)
            {
                command += POut.Long(emailMessageUid.EmailMessageUidNum) + ",";
            }
            command +=
                "'" + POut.String(emailMessageUid.MsgId) + "',"
                + "'" + POut.String(emailMessageUid.RecipientAddress) + "')";
            if (useExistingPK || PrefC.RandomKeys)
            {
                Db.NonQ(command);
            }
            else
            {
                emailMessageUid.EmailMessageUidNum = Db.NonQ(command, true);
            }
            return(emailMessageUid.EmailMessageUidNum);
        }
예제 #2
0
        ///<summary>Updates one EmailMessageUid in the database.  Uses an old object to compare to, and only alters changed fields.  This prevents collisions and concurrency problems in heavily used tables.  Returns true if an update occurred.</summary>
        public static bool Update(EmailMessageUid emailMessageUid, EmailMessageUid oldEmailMessageUid)
        {
            string command = "";

            if (emailMessageUid.MsgId != oldEmailMessageUid.MsgId)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "MsgId = " + DbHelper.ParamChar + "paramMsgId";
            }
            if (emailMessageUid.RecipientAddress != oldEmailMessageUid.RecipientAddress)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "RecipientAddress = '" + POut.String(emailMessageUid.RecipientAddress) + "'";
            }
            if (command == "")
            {
                return(false);
            }
            if (emailMessageUid.MsgId == null)
            {
                emailMessageUid.MsgId = "";
            }
            OdSqlParameter paramMsgId = new OdSqlParameter("paramMsgId", OdDbType.Text, POut.StringParam(emailMessageUid.MsgId));

            command = "UPDATE emailmessageuid SET " + command
                      + " WHERE EmailMessageUidNum = " + POut.Long(emailMessageUid.EmailMessageUidNum);
            Db.NonQ(command, paramMsgId);
            return(true);
        }
예제 #3
0
        ///<summary>Updates one EmailMessageUid in the database.  Uses an old object to compare to, and only alters changed fields.  This prevents collisions and concurrency problems in heavily used tables.</summary>
        public static void Update(EmailMessageUid emailMessageUid, EmailMessageUid oldEmailMessageUid)
        {
            string command = "";

            if (emailMessageUid.MsgId != oldEmailMessageUid.MsgId)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "MsgId = '" + POut.String(emailMessageUid.MsgId) + "'";
            }
            if (emailMessageUid.RecipientAddress != oldEmailMessageUid.RecipientAddress)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "RecipientAddress = '" + POut.String(emailMessageUid.RecipientAddress) + "'";
            }
            if (command == "")
            {
                return;
            }
            command = "UPDATE emailmessageuid SET " + command
                      + " WHERE EmailMessageUidNum = " + POut.Long(emailMessageUid.EmailMessageUidNum);
            Db.NonQ(command);
        }
예제 #4
0
 ///<summary>Inserts one EmailMessageUid into the database.  Returns the new priKey.</summary>
 public static long Insert(EmailMessageUid emailMessageUid)
 {
     if (DataConnection.DBtype == DatabaseType.Oracle)
     {
         emailMessageUid.EmailMessageUidNum = DbHelper.GetNextOracleKey("emailmessageuid", "EmailMessageUidNum");
         int loopcount = 0;
         while (loopcount < 100)
         {
             try {
                 return(Insert(emailMessageUid, true));
             }
             catch (Oracle.ManagedDataAccess.Client.OracleException ex) {
                 if (ex.Number == 1 && ex.Message.ToLower().Contains("unique constraint") && ex.Message.ToLower().Contains("violated"))
                 {
                     emailMessageUid.EmailMessageUidNum++;
                     loopcount++;
                 }
                 else
                 {
                     throw ex;
                 }
             }
         }
         throw new ApplicationException("Insert failed.  Could not generate primary key.");
     }
     else
     {
         return(Insert(emailMessageUid, false));
     }
 }
예제 #5
0
        ///<summary>Updates one EmailMessageUid in the database.</summary>
        public static void Update(EmailMessageUid emailMessageUid)
        {
            string command = "UPDATE emailmessageuid SET "
                             + "MsgId             = '" + POut.String(emailMessageUid.MsgId) + "', "
                             + "RecipientAddress  = '" + POut.String(emailMessageUid.RecipientAddress) + "' "
                             + "WHERE EmailMessageUidNum = " + POut.Long(emailMessageUid.EmailMessageUidNum);

            Db.NonQ(command);
        }
예제 #6
0
 ///<summary>Returns true if Update(EmailMessageUid,EmailMessageUid) would make changes to the database.
 ///Does not make any changes to the database and can be called before remoting role is checked.</summary>
 public static bool UpdateComparison(EmailMessageUid emailMessageUid, EmailMessageUid oldEmailMessageUid)
 {
     if (emailMessageUid.MsgId != oldEmailMessageUid.MsgId)
     {
         return(true);
     }
     if (emailMessageUid.RecipientAddress != oldEmailMessageUid.RecipientAddress)
     {
         return(true);
     }
     return(false);
 }
		///<summary>Converts a DataTable to a list of objects.</summary>
		public static List<EmailMessageUid> TableToList(DataTable table){
			List<EmailMessageUid> retVal=new List<EmailMessageUid>();
			EmailMessageUid emailMessageUid;
			for(int i=0;i<table.Rows.Count;i++) {
				emailMessageUid=new EmailMessageUid();
				emailMessageUid.EmailMessageUidNum= PIn.Long  (table.Rows[i]["EmailMessageUidNum"].ToString());
				emailMessageUid.MsgId             = PIn.String(table.Rows[i]["MsgId"].ToString());
				emailMessageUid.RecipientAddress  = PIn.String(table.Rows[i]["RecipientAddress"].ToString());
				retVal.Add(emailMessageUid);
			}
			return retVal;
		}
예제 #8
0
        ///<summary>Converts a DataTable to a list of objects.</summary>
        public static List <EmailMessageUid> TableToList(DataTable table)
        {
            List <EmailMessageUid> retVal = new List <EmailMessageUid>();
            EmailMessageUid        emailMessageUid;

            for (int i = 0; i < table.Rows.Count; i++)
            {
                emailMessageUid = new EmailMessageUid();
                emailMessageUid.EmailMessageUidNum = PIn.Long(table.Rows[i]["EmailMessageUidNum"].ToString());
                emailMessageUid.MsgId            = PIn.String(table.Rows[i]["MsgId"].ToString());
                emailMessageUid.RecipientAddress = PIn.String(table.Rows[i]["RecipientAddress"].ToString());
                retVal.Add(emailMessageUid);
            }
            return(retVal);
        }
예제 #9
0
        ///<summary>Converts a DataTable to a list of objects.</summary>
        public static List <EmailMessageUid> TableToList(DataTable table)
        {
            List <EmailMessageUid> retVal = new List <EmailMessageUid>();
            EmailMessageUid        emailMessageUid;

            foreach (DataRow row in table.Rows)
            {
                emailMessageUid = new EmailMessageUid();
                emailMessageUid.EmailMessageUidNum = PIn.Long(row["EmailMessageUidNum"].ToString());
                emailMessageUid.MsgId            = PIn.String(row["MsgId"].ToString());
                emailMessageUid.RecipientAddress = PIn.String(row["RecipientAddress"].ToString());
                retVal.Add(emailMessageUid);
            }
            return(retVal);
        }
예제 #10
0
        ///<summary>Updates one EmailMessageUid in the database.</summary>
        public static void Update(EmailMessageUid emailMessageUid)
        {
            string command = "UPDATE emailmessageuid SET "
                             + "MsgId             =  " + DbHelper.ParamChar + "paramMsgId, "
                             + "RecipientAddress  = '" + POut.String(emailMessageUid.RecipientAddress) + "' "
                             + "WHERE EmailMessageUidNum = " + POut.Long(emailMessageUid.EmailMessageUidNum);

            if (emailMessageUid.MsgId == null)
            {
                emailMessageUid.MsgId = "";
            }
            OdSqlParameter paramMsgId = new OdSqlParameter("paramMsgId", OdDbType.Text, POut.StringParam(emailMessageUid.MsgId));

            Db.NonQ(command, paramMsgId);
        }
예제 #11
0
 ///<summary>Inserts one EmailMessageUid into the database.  Returns the new priKey.  Doesn't use the cache.</summary>
 public static long InsertNoCache(EmailMessageUid emailMessageUid)
 {
     if (DataConnection.DBtype == DatabaseType.MySql)
     {
         return(InsertNoCache(emailMessageUid, false));
     }
     else
     {
         if (DataConnection.DBtype == DatabaseType.Oracle)
         {
             emailMessageUid.EmailMessageUidNum = DbHelper.GetNextOracleKey("emailmessageuid", "EmailMessageUidNum");                  //Cacheless method
         }
         return(InsertNoCache(emailMessageUid, true));
     }
 }
		///<summary>Inserts one EmailMessageUid into the database.  Provides option to use the existing priKey.</summary>
		public static long Insert(EmailMessageUid emailMessageUid,bool useExistingPK){
			if(!useExistingPK && PrefC.RandomKeys) {
				emailMessageUid.EmailMessageUidNum=ReplicationServers.GetKey("emailmessageuid","EmailMessageUidNum");
			}
			string command="INSERT INTO emailmessageuid (";
			if(useExistingPK || PrefC.RandomKeys) {
				command+="EmailMessageUidNum,";
			}
			command+="MsgId,RecipientAddress) VALUES(";
			if(useExistingPK || PrefC.RandomKeys) {
				command+=POut.Long(emailMessageUid.EmailMessageUidNum)+",";
			}
			command+=
				 "'"+POut.String(emailMessageUid.MsgId)+"',"
				+"'"+POut.String(emailMessageUid.RecipientAddress)+"')";
			if(useExistingPK || PrefC.RandomKeys) {
				Db.NonQ(command);
			}
			else {
				emailMessageUid.EmailMessageUidNum=Db.NonQ(command,true);
			}
			return emailMessageUid.EmailMessageUidNum;
		}
예제 #13
0
        ///<summary>Inserts one EmailMessageUid into the database.  Provides option to use the existing priKey.  Doesn't use the cache.</summary>
        public static long InsertNoCache(EmailMessageUid emailMessageUid, bool useExistingPK)
        {
            bool   isRandomKeys = Prefs.GetBoolNoCache(PrefName.RandomPrimaryKeys);
            string command      = "INSERT INTO emailmessageuid (";

            if (!useExistingPK && isRandomKeys)
            {
                emailMessageUid.EmailMessageUidNum = ReplicationServers.GetKeyNoCache("emailmessageuid", "EmailMessageUidNum");
            }
            if (isRandomKeys || useExistingPK)
            {
                command += "EmailMessageUidNum,";
            }
            command += "MsgId,RecipientAddress) VALUES(";
            if (isRandomKeys || useExistingPK)
            {
                command += POut.Long(emailMessageUid.EmailMessageUidNum) + ",";
            }
            command +=
                DbHelper.ParamChar + "paramMsgId,"
                + "'" + POut.String(emailMessageUid.RecipientAddress) + "')";
            if (emailMessageUid.MsgId == null)
            {
                emailMessageUid.MsgId = "";
            }
            OdSqlParameter paramMsgId = new OdSqlParameter("paramMsgId", OdDbType.Text, POut.StringParam(emailMessageUid.MsgId));

            if (useExistingPK || isRandomKeys)
            {
                Db.NonQ(command, paramMsgId);
            }
            else
            {
                emailMessageUid.EmailMessageUidNum = Db.NonQ(command, true, "EmailMessageUidNum", "emailMessageUid", paramMsgId);
            }
            return(emailMessageUid.EmailMessageUidNum);
        }
		///<summary>Inserts one EmailMessageUid into the database.  Returns the new priKey.</summary>
		public static long Insert(EmailMessageUid emailMessageUid){
			if(DataConnection.DBtype==DatabaseType.Oracle) {
				emailMessageUid.EmailMessageUidNum=DbHelper.GetNextOracleKey("emailmessageuid","EmailMessageUidNum");
				int loopcount=0;
				while(loopcount<100){
					try {
						return Insert(emailMessageUid,true);
					}
					catch(Oracle.DataAccess.Client.OracleException ex){
						if(ex.Number==1 && ex.Message.ToLower().Contains("unique constraint") && ex.Message.ToLower().Contains("violated")){
							emailMessageUid.EmailMessageUidNum++;
							loopcount++;
						}
						else{
							throw ex;
						}
					}
				}
				throw new ApplicationException("Insert failed.  Could not generate primary key.");
			}
			else {
				return Insert(emailMessageUid,false);
			}
		}
		///<summary>Updates one EmailMessageUid in the database.</summary>
		public static void Update(EmailMessageUid emailMessageUid){
			string command="UPDATE emailmessageuid SET "
				+"MsgId             = '"+POut.String(emailMessageUid.MsgId)+"', "
				+"RecipientAddress  = '"+POut.String(emailMessageUid.RecipientAddress)+"' "
				+"WHERE EmailMessageUidNum = "+POut.Long(emailMessageUid.EmailMessageUidNum);
			Db.NonQ(command);
		}
예제 #16
0
 ///<summary>Inserts one EmailMessageUid into the database.  Returns the new priKey.</summary>
 public static long Insert(EmailMessageUid emailMessageUid)
 {
     return(Insert(emailMessageUid, false));
 }
		///<summary>Updates one EmailMessageUid in the database.  Uses an old object to compare to, and only alters changed fields.  This prevents collisions and concurrency problems in heavily used tables.</summary>
		public static void Update(EmailMessageUid emailMessageUid,EmailMessageUid oldEmailMessageUid){
			string command="";
			if(emailMessageUid.MsgId != oldEmailMessageUid.MsgId) {
				if(command!=""){ command+=",";}
				command+="MsgId = '"+POut.String(emailMessageUid.MsgId)+"'";
			}
			if(emailMessageUid.RecipientAddress != oldEmailMessageUid.RecipientAddress) {
				if(command!=""){ command+=",";}
				command+="RecipientAddress = '"+POut.String(emailMessageUid.RecipientAddress)+"'";
			}
			if(command==""){
				return;
			}
			command="UPDATE emailmessageuid SET "+command
				+" WHERE EmailMessageUidNum = "+POut.Long(emailMessageUid.EmailMessageUidNum);
			Db.NonQ(command);
		}