예제 #1
0
        private void butAddSpan_Click(object sender, System.EventArgs e)
        {
            if (gridMain.SelectedIndices.Length < 1)
            {
                MsgBox.Show(this, "Please select a category first.");
                return;
            }
            if (gridMain.Rows[gridMain.SelectedIndices[0]].Tag.GetType() != typeof(CovCat))
            {
                MsgBox.Show(this, "Please select a category first.");
                return;
            }
            CovSpan covspan = new CovSpan();

            covspan.CovCatNum = ((CovCat)gridMain.Rows[gridMain.SelectedIndices[0]].Tag).CovCatNum;
            FormInsSpanEdit FormE = new FormInsSpanEdit(covspan);

            FormE.IsNew = true;
            FormE.ShowDialog();
            if (FormE.DialogResult != DialogResult.OK)
            {
                return;
            }
            changed = true;
            FillSpans();
        }
예제 #2
0
        ///<summary>Inserts one CovSpan into the database.  Provides option to use the existing priKey.  Doesn't use the cache.</summary>
        public static long InsertNoCache(CovSpan covSpan, bool useExistingPK)
        {
            bool   isRandomKeys = Prefs.GetBoolNoCache(PrefName.RandomPrimaryKeys);
            string command      = "INSERT INTO covspan (";

            if (!useExistingPK && isRandomKeys)
            {
                covSpan.CovSpanNum = ReplicationServers.GetKeyNoCache("covspan", "CovSpanNum");
            }
            if (isRandomKeys || useExistingPK)
            {
                command += "CovSpanNum,";
            }
            command += "CovCatNum,FromCode,ToCode) VALUES(";
            if (isRandomKeys || useExistingPK)
            {
                command += POut.Long(covSpan.CovSpanNum) + ",";
            }
            command +=
                POut.Long(covSpan.CovCatNum) + ","
                + "'" + POut.String(covSpan.FromCode) + "',"
                + "'" + POut.String(covSpan.ToCode) + "')";
            if (useExistingPK || isRandomKeys)
            {
                Db.NonQ(command);
            }
            else
            {
                covSpan.CovSpanNum = Db.NonQ(command, true, "CovSpanNum", "covSpan");
            }
            return(covSpan.CovSpanNum);
        }
예제 #3
0
        ///<summary>Inserts one CovSpan into the database.  Provides option to use the existing priKey.</summary>
        public static long Insert(CovSpan covSpan, bool useExistingPK)
        {
            if (!useExistingPK && PrefC.RandomKeys)
            {
                covSpan.CovSpanNum = ReplicationServers.GetKey("covspan", "CovSpanNum");
            }
            string command = "INSERT INTO covspan (";

            if (useExistingPK || PrefC.RandomKeys)
            {
                command += "CovSpanNum,";
            }
            command += "CovCatNum,FromCode,ToCode) VALUES(";
            if (useExistingPK || PrefC.RandomKeys)
            {
                command += POut.Long(covSpan.CovSpanNum) + ",";
            }
            command +=
                POut.Long(covSpan.CovCatNum) + ","
                + "'" + POut.String(covSpan.FromCode) + "',"
                + "'" + POut.String(covSpan.ToCode) + "')";
            if (useExistingPK || PrefC.RandomKeys)
            {
                Db.NonQ(command);
            }
            else
            {
                covSpan.CovSpanNum = Db.NonQ(command, true, "CovSpanNum", "covSpan");
            }
            return(covSpan.CovSpanNum);
        }
예제 #4
0
 ///<summary>Inserts one CovSpan into the database.  Returns the new priKey.</summary>
 public static long Insert(CovSpan covSpan)
 {
     if (DataConnection.DBtype == DatabaseType.Oracle)
     {
         covSpan.CovSpanNum = DbHelper.GetNextOracleKey("covspan", "CovSpanNum");
         int loopcount = 0;
         while (loopcount < 100)
         {
             try {
                 return(Insert(covSpan, true));
             }
             catch (Oracle.ManagedDataAccess.Client.OracleException ex) {
                 if (ex.Number == 1 && ex.Message.ToLower().Contains("unique constraint") && ex.Message.ToLower().Contains("violated"))
                 {
                     covSpan.CovSpanNum++;
                     loopcount++;
                 }
                 else
                 {
                     throw ex;
                 }
             }
         }
         throw new ApplicationException("Insert failed.  Could not generate primary key.");
     }
     else
     {
         return(Insert(covSpan, false));
     }
 }
예제 #5
0
        ///<summary></summary>
        public static void Delete(CovSpan span)
        {
            string command = "DELETE FROM covspan"
                             + " WHERE CovSpanNum = '" + POut.PInt(span.CovSpanNum) + "'";

            General.NonQ(command);
        }
예제 #6
0
 ///<summary>Inserts one CovSpan into the database.  Provides option to use the existing priKey.</summary>
 internal static long Insert(CovSpan covSpan,bool useExistingPK)
 {
     if(!useExistingPK && PrefC.RandomKeys) {
         covSpan.CovSpanNum=ReplicationServers.GetKey("covspan","CovSpanNum");
     }
     string command="INSERT INTO covspan (";
     if(useExistingPK || PrefC.RandomKeys) {
         command+="CovSpanNum,";
     }
     command+="CovCatNum,FromCode,ToCode) VALUES(";
     if(useExistingPK || PrefC.RandomKeys) {
         command+=POut.Long(covSpan.CovSpanNum)+",";
     }
     command+=
              POut.Long  (covSpan.CovCatNum)+","
         +"'"+POut.String(covSpan.FromCode)+"',"
         +"'"+POut.String(covSpan.ToCode)+"')";
     if(useExistingPK || PrefC.RandomKeys) {
         Db.NonQ(command);
     }
     else {
         covSpan.CovSpanNum=Db.NonQ(command,true);
     }
     return covSpan.CovSpanNum;
 }
예제 #7
0
 ///<summary>Inserts one CovSpan into the database.  Returns the new priKey.</summary>
 internal static long Insert(CovSpan covSpan)
 {
     if(DataConnection.DBtype==DatabaseType.Oracle) {
         covSpan.CovSpanNum=DbHelper.GetNextOracleKey("covspan","CovSpanNum");
         int loopcount=0;
         while(loopcount<100){
             try {
                 return Insert(covSpan,true);
             }
             catch(Oracle.DataAccess.Client.OracleException ex){
                 if(ex.Number==1 && ex.Message.ToLower().Contains("unique constraint") && ex.Message.ToLower().Contains("violated")){
                     covSpan.CovSpanNum++;
                     loopcount++;
                 }
                 else{
                     throw ex;
                 }
             }
         }
         throw new ApplicationException("Insert failed.  Could not generate primary key.");
     }
     else {
         return Insert(covSpan,false);
     }
 }
예제 #8
0
        ///<summary>Updates one CovSpan in the database.</summary>
        public static void Update(CovSpan covSpan)
        {
            string command = "UPDATE covspan SET "
                             + "CovCatNum =  " + POut.Long(covSpan.CovCatNum) + ", "
                             + "FromCode  = '" + POut.String(covSpan.FromCode) + "', "
                             + "ToCode    = '" + POut.String(covSpan.ToCode) + "' "
                             + "WHERE CovSpanNum = " + POut.Long(covSpan.CovSpanNum);

            Db.NonQ(command);
        }
예제 #9
0
        ///<summary></summary>
        private static void Insert(CovSpan span)
        {
            string command = "INSERT INTO covspan (CovCatNum,"
                             + "FromCode,ToCode) VALUES("
                             + "'" + POut.PInt(span.CovCatNum) + "', "
                             + "'" + POut.PString(span.FromCode) + "', "
                             + "'" + POut.PString(span.ToCode) + "')";

            General.NonQ(command);
        }
예제 #10
0
        ///<summary></summary>
        private static void Update(CovSpan span)
        {
            string command = "UPDATE covspan SET "
                             + "CovCatNum = '" + POut.PInt(span.CovCatNum) + "'"
                             + ",FromCode = '" + POut.PString(span.FromCode) + "'"
                             + ",ToCode = '" + POut.PString(span.ToCode) + "'"
                             + " WHERE CovSpanNum = '" + POut.PInt(span.CovSpanNum) + "'";

            General.NonQ(command);
        }
예제 #11
0
		///<summary>Converts a DataTable to a list of objects.</summary>
		public static List<CovSpan> TableToList(DataTable table){
			List<CovSpan> retVal=new List<CovSpan>();
			CovSpan covSpan;
			for(int i=0;i<table.Rows.Count;i++) {
				covSpan=new CovSpan();
				covSpan.CovSpanNum= PIn.Long  (table.Rows[i]["CovSpanNum"].ToString());
				covSpan.CovCatNum = PIn.Long  (table.Rows[i]["CovCatNum"].ToString());
				covSpan.FromCode  = PIn.String(table.Rows[i]["FromCode"].ToString());
				covSpan.ToCode    = PIn.String(table.Rows[i]["ToCode"].ToString());
				retVal.Add(covSpan);
			}
			return retVal;
		}
예제 #12
0
 ///<summary>Inserts one CovSpan into the database.  Returns the new priKey.  Doesn't use the cache.</summary>
 public static long InsertNoCache(CovSpan covSpan)
 {
     if (DataConnection.DBtype == DatabaseType.MySql)
     {
         return(InsertNoCache(covSpan, false));
     }
     else
     {
         if (DataConnection.DBtype == DatabaseType.Oracle)
         {
             covSpan.CovSpanNum = DbHelper.GetNextOracleKey("covspan", "CovSpanNum");                  //Cacheless method
         }
         return(InsertNoCache(covSpan, true));
     }
 }
예제 #13
0
        ///<summary></summary>
        public static CovSpan[] GetForCat(int catNum)
        {
            ArrayList AL = new ArrayList();

            for (int i = 0; i < List.Length; i++)
            {
                if (List[i].CovCatNum == catNum)
                {
                    AL.Add(List[i].Copy());
                }
            }
            CovSpan[] retVal = new CovSpan[AL.Count];
            AL.CopyTo(retVal);
            return(retVal);
        }
예제 #14
0
        ///<summary>Converts a DataTable to a list of objects.</summary>
        public static List <CovSpan> TableToList(DataTable table)
        {
            List <CovSpan> retVal = new List <CovSpan>();
            CovSpan        covSpan;

            foreach (DataRow row in table.Rows)
            {
                covSpan            = new CovSpan();
                covSpan.CovSpanNum = PIn.Long(row["CovSpanNum"].ToString());
                covSpan.CovCatNum  = PIn.Long(row["CovCatNum"].ToString());
                covSpan.FromCode   = PIn.String(row["FromCode"].ToString());
                covSpan.ToCode     = PIn.String(row["ToCode"].ToString());
                retVal.Add(covSpan);
            }
            return(retVal);
        }
예제 #15
0
 ///<summary>Returns true if Update(CovSpan,CovSpan) 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(CovSpan covSpan, CovSpan oldCovSpan)
 {
     if (covSpan.CovCatNum != oldCovSpan.CovCatNum)
     {
         return(true);
     }
     if (covSpan.FromCode != oldCovSpan.FromCode)
     {
         return(true);
     }
     if (covSpan.ToCode != oldCovSpan.ToCode)
     {
         return(true);
     }
     return(false);
 }
예제 #16
0
        ///<summary>Converts a DataTable to a list of objects.</summary>
        public static List <CovSpan> TableToList(DataTable table)
        {
            List <CovSpan> retVal = new List <CovSpan>();
            CovSpan        covSpan;

            for (int i = 0; i < table.Rows.Count; i++)
            {
                covSpan            = new CovSpan();
                covSpan.CovSpanNum = PIn.Long(table.Rows[i]["CovSpanNum"].ToString());
                covSpan.CovCatNum  = PIn.Long(table.Rows[i]["CovCatNum"].ToString());
                covSpan.FromCode   = PIn.String(table.Rows[i]["FromCode"].ToString());
                covSpan.ToCode     = PIn.String(table.Rows[i]["ToCode"].ToString());
                retVal.Add(covSpan);
            }
            return(retVal);
        }
예제 #17
0
        ///<summary></summary>
        public static void Refresh()
        {
            string command =
                "SELECT * from covspan"
                + " ORDER BY FromCode";
            //+" ORDER BY CovCatNum";
            DataTable table = General.GetTable(command);

            List = new CovSpan[table.Rows.Count];
            for (int i = 0; i < table.Rows.Count; i++)
            {
                List[i]            = new CovSpan();
                List[i].CovSpanNum = PIn.PInt(table.Rows[i][0].ToString());
                List[i].CovCatNum  = PIn.PInt(table.Rows[i][1].ToString());
                List[i].FromCode   = PIn.PString(table.Rows[i][2].ToString());
                List[i].ToCode     = PIn.PString(table.Rows[i][3].ToString());
            }
        }
예제 #18
0
 ///<summary></summary>
 public static void InsertOrUpdate(CovSpan span, bool IsNew)
 {
     if (span.FromCode == "" || span.ToCode == "")
     {
         throw new ApplicationException(Lan.g("FormInsSpanEdit", "Codes not allowed to be blank."));
     }
     if (String.Compare(span.ToCode, span.FromCode) < 0)
     {
         throw new ApplicationException(Lan.g("FormInsSpanEdit", "From Code must be less than To Code.  Remember that the comparison is alphabetical, not numeric.  For instance, 100 would come before 2, but after 02."));
     }
     if (IsNew)
     {
         Insert(span);
     }
     else
     {
         Update(span);
     }
 }
예제 #19
0
        ///<summary>Updates one CovSpan 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(CovSpan covSpan, CovSpan oldCovSpan)
        {
            string command = "";

            if (covSpan.CovCatNum != oldCovSpan.CovCatNum)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "CovCatNum = " + POut.Long(covSpan.CovCatNum) + "";
            }
            if (covSpan.FromCode != oldCovSpan.FromCode)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "FromCode = '" + POut.String(covSpan.FromCode) + "'";
            }
            if (covSpan.ToCode != oldCovSpan.ToCode)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "ToCode = '" + POut.String(covSpan.ToCode) + "'";
            }
            if (command == "")
            {
                return(false);
            }
            command = "UPDATE covspan SET " + command
                      + " WHERE CovSpanNum = " + POut.Long(covSpan.CovSpanNum);
            Db.NonQ(command);
            return(true);
        }
예제 #20
0
 ///<summary></summary>
 public FormInsSpanEdit(CovSpan covSpanCur)
 {
     InitializeComponent();            // Required for Windows Form Designer support
     CovSpanCur = covSpanCur.Copy();
     Lan.F(this);
 }
예제 #21
0
 ///<summary>Inserts one CovSpan into the database.  Returns the new priKey.  Doesn't use the cache.</summary>
 public static long InsertNoCache(CovSpan covSpan)
 {
     return(InsertNoCache(covSpan, false));
 }
예제 #22
0
 ///<summary>Inserts one CovSpan into the database.  Returns the new priKey.</summary>
 public static long Insert(CovSpan covSpan)
 {
     return(Insert(covSpan, false));
 }
예제 #23
0
 ///<summary>Updates one CovSpan in the database.</summary>
 internal static void Update(CovSpan covSpan)
 {
     string command="UPDATE covspan SET "
         +"CovCatNum =  "+POut.Long  (covSpan.CovCatNum)+", "
         +"FromCode  = '"+POut.String(covSpan.FromCode)+"', "
         +"ToCode    = '"+POut.String(covSpan.ToCode)+"' "
         +"WHERE CovSpanNum = "+POut.Long(covSpan.CovSpanNum);
     Db.NonQ(command);
 }
예제 #24
0
 ///<summary>Updates one CovSpan 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>
 internal static void Update(CovSpan covSpan,CovSpan oldCovSpan)
 {
     string command="";
     if(covSpan.CovCatNum != oldCovSpan.CovCatNum) {
         if(command!=""){ command+=",";}
         command+="CovCatNum = "+POut.Long(covSpan.CovCatNum)+"";
     }
     if(covSpan.FromCode != oldCovSpan.FromCode) {
         if(command!=""){ command+=",";}
         command+="FromCode = '"+POut.String(covSpan.FromCode)+"'";
     }
     if(covSpan.ToCode != oldCovSpan.ToCode) {
         if(command!=""){ command+=",";}
         command+="ToCode = '"+POut.String(covSpan.ToCode)+"'";
     }
     if(command==""){
         return;
     }
     command="UPDATE covspan SET "+command
         +" WHERE CovSpanNum = "+POut.Long(covSpan.CovSpanNum);
     Db.NonQ(command);
 }