Ejemplo n.º 1
0
        ///<summary>Inserts one ConnGroupAttach into the database.  Provides option to use the existing priKey.</summary>
        public static long Insert(ConnGroupAttach connGroupAttach, bool useExistingPK)
        {
            if (!useExistingPK && PrefC.RandomKeys)
            {
                connGroupAttach.ConnGroupAttachNum = ReplicationServers.GetKey("conngroupattach", "ConnGroupAttachNum");
            }
            string command = "INSERT INTO conngroupattach (";

            if (useExistingPK || PrefC.RandomKeys)
            {
                command += "ConnGroupAttachNum,";
            }
            command += "ConnectionGroupNum,CentralConnectionNum) VALUES(";
            if (useExistingPK || PrefC.RandomKeys)
            {
                command += POut.Long(connGroupAttach.ConnGroupAttachNum) + ",";
            }
            command +=
                POut.Long(connGroupAttach.ConnectionGroupNum) + ","
                + POut.Long(connGroupAttach.CentralConnectionNum) + ")";
            if (useExistingPK || PrefC.RandomKeys)
            {
                Db.NonQ(command);
            }
            else
            {
                connGroupAttach.ConnGroupAttachNum = Db.NonQ(command, true, "ConnGroupAttachNum", "connGroupAttach");
            }
            return(connGroupAttach.ConnGroupAttachNum);
        }
Ejemplo n.º 2
0
        ///<summary>Updates one ConnGroupAttach 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(ConnGroupAttach connGroupAttach, ConnGroupAttach oldConnGroupAttach)
        {
            string command = "";

            if (connGroupAttach.ConnectionGroupNum != oldConnGroupAttach.ConnectionGroupNum)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "ConnectionGroupNum = " + POut.Long(connGroupAttach.ConnectionGroupNum) + "";
            }
            if (connGroupAttach.CentralConnectionNum != oldConnGroupAttach.CentralConnectionNum)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "CentralConnectionNum = " + POut.Long(connGroupAttach.CentralConnectionNum) + "";
            }
            if (command == "")
            {
                return(false);
            }
            command = "UPDATE conngroupattach SET " + command
                      + " WHERE ConnGroupAttachNum = " + POut.Long(connGroupAttach.ConnGroupAttachNum);
            Db.NonQ(command);
            return(true);
        }
Ejemplo n.º 3
0
        ///<summary>Inserts one ConnGroupAttach into the database.  Provides option to use the existing priKey.  Doesn't use the cache.</summary>
        public static long InsertNoCache(ConnGroupAttach connGroupAttach, bool useExistingPK)
        {
            bool   isRandomKeys = Prefs.GetBoolNoCache(PrefName.RandomPrimaryKeys);
            string command      = "INSERT INTO conngroupattach (";

            if (!useExistingPK && isRandomKeys)
            {
                connGroupAttach.ConnGroupAttachNum = ReplicationServers.GetKeyNoCache("conngroupattach", "ConnGroupAttachNum");
            }
            if (isRandomKeys || useExistingPK)
            {
                command += "ConnGroupAttachNum,";
            }
            command += "ConnectionGroupNum,CentralConnectionNum) VALUES(";
            if (isRandomKeys || useExistingPK)
            {
                command += POut.Long(connGroupAttach.ConnGroupAttachNum) + ",";
            }
            command +=
                POut.Long(connGroupAttach.ConnectionGroupNum) + ","
                + POut.Long(connGroupAttach.CentralConnectionNum) + ")";
            if (useExistingPK || isRandomKeys)
            {
                Db.NonQ(command);
            }
            else
            {
                connGroupAttach.ConnGroupAttachNum = Db.NonQ(command, true, "ConnGroupAttachNum", "connGroupAttach");
            }
            return(connGroupAttach.ConnGroupAttachNum);
        }
Ejemplo n.º 4
0
 ///<summary>Inserts one ConnGroupAttach into the database.  Returns the new priKey.</summary>
 public static long Insert(ConnGroupAttach connGroupAttach)
 {
     if (DataConnection.DBtype == DatabaseType.Oracle)
     {
         connGroupAttach.ConnGroupAttachNum = DbHelper.GetNextOracleKey("conngroupattach", "ConnGroupAttachNum");
         int loopcount = 0;
         while (loopcount < 100)
         {
             try {
                 return(Insert(connGroupAttach, true));
             }
             catch (Oracle.ManagedDataAccess.Client.OracleException ex) {
                 if (ex.Number == 1 && ex.Message.ToLower().Contains("unique constraint") && ex.Message.ToLower().Contains("violated"))
                 {
                     connGroupAttach.ConnGroupAttachNum++;
                     loopcount++;
                 }
                 else
                 {
                     throw ex;
                 }
             }
         }
         throw new ApplicationException("Insert failed.  Could not generate primary key.");
     }
     else
     {
         return(Insert(connGroupAttach, false));
     }
 }
Ejemplo n.º 5
0
        private void butOK_Click(object sender, EventArgs e)
        {
            //Sync groupattaches for this group prior to leaving this window.  Updating the ConnectionGroup list in parent window is taken care of there.
            if (textDescription.Text == "")
            {
                MessageBox.Show(Lans.g(this, "Please enter something for the description."));
                return;
            }
            ConnectionGroupCur.Description = textDescription.Text;
            //Find all connections in our current list that do not have a corresponding conn group attach entry.
            List <CentralConnection> listConnsToAdd = _listConnsCur.FindAll(x => !_listConnGroupAttaches.Exists(y => y.CentralConnectionNum == x.CentralConnectionNum));

            //Add a conn group attach for each connection found.
            foreach (CentralConnection conn in listConnsToAdd)
            {
                ConnGroupAttach connGA = new ConnGroupAttach();
                connGA.CentralConnectionNum = conn.CentralConnectionNum;
                connGA.ConnectionGroupNum   = ConnectionGroupCur.ConnectionGroupNum;
                _listConnGroupAttaches.Add(connGA);
            }
            //Make sure that we only keep all conn group attaches that have a valid match.
            //Removing any orphaned conn group attaches from our in-memory list will cause the sync to remove the entries from the db correctly.
            _listConnGroupAttaches = _listConnGroupAttaches.FindAll(x => _listConnsCur.Exists(y => y.CentralConnectionNum == x.CentralConnectionNum));
            //_listConnGroupAttaches now directly reflects what is shown in the UI, without creating duplicates.
            ConnGroupAttaches.Sync(_listConnGroupAttaches, ConnectionGroupCur.ConnectionGroupNum);
            DialogResult = DialogResult.OK;
        }
Ejemplo n.º 6
0
        ///<summary>Updates one ConnGroupAttach in the database.</summary>
        public static void Update(ConnGroupAttach connGroupAttach)
        {
            string command = "UPDATE conngroupattach SET "
                             + "ConnectionGroupNum  =  " + POut.Long(connGroupAttach.ConnectionGroupNum) + ", "
                             + "CentralConnectionNum=  " + POut.Long(connGroupAttach.CentralConnectionNum) + " "
                             + "WHERE ConnGroupAttachNum = " + POut.Long(connGroupAttach.ConnGroupAttachNum);

            Db.NonQ(command);
        }
Ejemplo n.º 7
0
		///<summary>Converts a DataTable to a list of objects.</summary>
		public static List<ConnGroupAttach> TableToList(DataTable table){
			List<ConnGroupAttach> retVal=new List<ConnGroupAttach>();
			ConnGroupAttach connGroupAttach;
			for(int i=0;i<table.Rows.Count;i++) {
				connGroupAttach=new ConnGroupAttach();
				connGroupAttach.ConnGroupAttachNum  = PIn.Long  (table.Rows[i]["ConnGroupAttachNum"].ToString());
				connGroupAttach.ConnectionGroupNum  = PIn.Long  (table.Rows[i]["ConnectionGroupNum"].ToString());
				connGroupAttach.CentralConnectionNum= PIn.Long  (table.Rows[i]["CentralConnectionNum"].ToString());
				retVal.Add(connGroupAttach);
			}
			return retVal;
		}
Ejemplo n.º 8
0
 ///<summary>Returns true if Update(ConnGroupAttach,ConnGroupAttach) 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(ConnGroupAttach connGroupAttach, ConnGroupAttach oldConnGroupAttach)
 {
     if (connGroupAttach.ConnectionGroupNum != oldConnGroupAttach.ConnectionGroupNum)
     {
         return(true);
     }
     if (connGroupAttach.CentralConnectionNum != oldConnGroupAttach.CentralConnectionNum)
     {
         return(true);
     }
     return(false);
 }
Ejemplo n.º 9
0
        ///<summary>Converts a DataTable to a list of objects.</summary>
        public static List <ConnGroupAttach> TableToList(DataTable table)
        {
            List <ConnGroupAttach> retVal = new List <ConnGroupAttach>();
            ConnGroupAttach        connGroupAttach;

            foreach (DataRow row in table.Rows)
            {
                connGroupAttach = new ConnGroupAttach();
                connGroupAttach.ConnGroupAttachNum   = PIn.Long(row["ConnGroupAttachNum"].ToString());
                connGroupAttach.ConnectionGroupNum   = PIn.Long(row["ConnectionGroupNum"].ToString());
                connGroupAttach.CentralConnectionNum = PIn.Long(row["CentralConnectionNum"].ToString());
                retVal.Add(connGroupAttach);
            }
            return(retVal);
        }
Ejemplo n.º 10
0
 ///<summary>Inserts one ConnGroupAttach into the database.  Returns the new priKey.  Doesn't use the cache.</summary>
 public static long InsertNoCache(ConnGroupAttach connGroupAttach)
 {
     if (DataConnection.DBtype == DatabaseType.MySql)
     {
         return(InsertNoCache(connGroupAttach, false));
     }
     else
     {
         if (DataConnection.DBtype == DatabaseType.Oracle)
         {
             connGroupAttach.ConnGroupAttachNum = DbHelper.GetNextOracleKey("conngroupattach", "ConnGroupAttachNum");                  //Cacheless method
         }
         return(InsertNoCache(connGroupAttach, true));
     }
 }
Ejemplo n.º 11
0
		///<summary>Inserts one ConnGroupAttach into the database.  Provides option to use the existing priKey.</summary>
		public static long Insert(ConnGroupAttach connGroupAttach,bool useExistingPK){
			if(!useExistingPK && PrefC.RandomKeys) {
				connGroupAttach.ConnGroupAttachNum=ReplicationServers.GetKey("conngroupattach","ConnGroupAttachNum");
			}
			string command="INSERT INTO conngroupattach (";
			if(useExistingPK || PrefC.RandomKeys) {
				command+="ConnGroupAttachNum,";
			}
			command+="ConnectionGroupNum,CentralConnectionNum) VALUES(";
			if(useExistingPK || PrefC.RandomKeys) {
				command+=POut.Long(connGroupAttach.ConnGroupAttachNum)+",";
			}
			command+=
				     POut.Long  (connGroupAttach.ConnectionGroupNum)+","
				+    POut.Long  (connGroupAttach.CentralConnectionNum)+")";
			if(useExistingPK || PrefC.RandomKeys) {
				Db.NonQ(command);
			}
			else {
				connGroupAttach.ConnGroupAttachNum=Db.NonQ(command,true);
			}
			return connGroupAttach.ConnGroupAttachNum;
		}
Ejemplo n.º 12
0
		///<summary>Inserts one ConnGroupAttach into the database.  Returns the new priKey.</summary>
		public static long Insert(ConnGroupAttach connGroupAttach){
			if(DataConnection.DBtype==DatabaseType.Oracle) {
				connGroupAttach.ConnGroupAttachNum=DbHelper.GetNextOracleKey("conngroupattach","ConnGroupAttachNum");
				int loopcount=0;
				while(loopcount<100){
					try {
						return Insert(connGroupAttach,true);
					}
					catch(Oracle.DataAccess.Client.OracleException ex){
						if(ex.Number==1 && ex.Message.ToLower().Contains("unique constraint") && ex.Message.ToLower().Contains("violated")){
							connGroupAttach.ConnGroupAttachNum++;
							loopcount++;
						}
						else{
							throw ex;
						}
					}
				}
				throw new ApplicationException("Insert failed.  Could not generate primary key.");
			}
			else {
				return Insert(connGroupAttach,false);
			}
		}
Ejemplo n.º 13
0
		///<summary>Updates one ConnGroupAttach 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(ConnGroupAttach connGroupAttach,ConnGroupAttach oldConnGroupAttach){
			string command="";
			if(connGroupAttach.ConnectionGroupNum != oldConnGroupAttach.ConnectionGroupNum) {
				if(command!=""){ command+=",";}
				command+="ConnectionGroupNum = "+POut.Long(connGroupAttach.ConnectionGroupNum)+"";
			}
			if(connGroupAttach.CentralConnectionNum != oldConnGroupAttach.CentralConnectionNum) {
				if(command!=""){ command+=",";}
				command+="CentralConnectionNum = "+POut.Long(connGroupAttach.CentralConnectionNum)+"";
			}
			if(command==""){
				return false;
			}
			command="UPDATE conngroupattach SET "+command
				+" WHERE ConnGroupAttachNum = "+POut.Long(connGroupAttach.ConnGroupAttachNum);
			Db.NonQ(command);
			return true;
		}
Ejemplo n.º 14
0
		///<summary>Updates one ConnGroupAttach in the database.</summary>
		public static void Update(ConnGroupAttach connGroupAttach){
			string command="UPDATE conngroupattach SET "
				+"ConnectionGroupNum  =  "+POut.Long  (connGroupAttach.ConnectionGroupNum)+", "
				+"CentralConnectionNum=  "+POut.Long  (connGroupAttach.CentralConnectionNum)+" "
				+"WHERE ConnGroupAttachNum = "+POut.Long(connGroupAttach.ConnGroupAttachNum);
			Db.NonQ(command);
		}
Ejemplo n.º 15
0
 ///<summary>Inserts one ConnGroupAttach into the database.  Returns the new priKey.</summary>
 public static long Insert(ConnGroupAttach connGroupAttach)
 {
     return(Insert(connGroupAttach, false));
 }