///<summary>Updates one ProviderClinicLink 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(ProviderClinicLink providerClinicLink, ProviderClinicLink oldProviderClinicLink)
        {
            string command = "";

            if (providerClinicLink.ProvNum != oldProviderClinicLink.ProvNum)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "ProvNum = " + POut.Long(providerClinicLink.ProvNum) + "";
            }
            if (providerClinicLink.ClinicNum != oldProviderClinicLink.ClinicNum)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "ClinicNum = " + POut.Long(providerClinicLink.ClinicNum) + "";
            }
            if (command == "")
            {
                return(false);
            }
            command = "UPDATE providercliniclink SET " + command
                      + " WHERE ProviderClinicLinkNum = " + POut.Long(providerClinicLink.ProviderClinicLinkNum);
            Db.NonQ(command);
            return(true);
        }
        ///<summary>Inserts one ProviderClinicLink into the database.  Provides option to use the existing priKey.</summary>
        public static long Insert(ProviderClinicLink providerClinicLink, bool useExistingPK)
        {
            if (!useExistingPK && PrefC.RandomKeys)
            {
                providerClinicLink.ProviderClinicLinkNum = ReplicationServers.GetKey("providercliniclink", "ProviderClinicLinkNum");
            }
            string command = "INSERT INTO providercliniclink (";

            if (useExistingPK || PrefC.RandomKeys)
            {
                command += "ProviderClinicLinkNum,";
            }
            command += "ProvNum,ClinicNum) VALUES(";
            if (useExistingPK || PrefC.RandomKeys)
            {
                command += POut.Long(providerClinicLink.ProviderClinicLinkNum) + ",";
            }
            command +=
                POut.Long(providerClinicLink.ProvNum) + ","
                + POut.Long(providerClinicLink.ClinicNum) + ")";
            if (useExistingPK || PrefC.RandomKeys)
            {
                Db.NonQ(command);
            }
            else
            {
                providerClinicLink.ProviderClinicLinkNum = Db.NonQ(command, true, "ProviderClinicLinkNum", "providerClinicLink");
            }
            return(providerClinicLink.ProviderClinicLinkNum);
        }
        ///<summary>Inserts one ProviderClinicLink into the database.  Provides option to use the existing priKey.  Doesn't use the cache.</summary>
        public static long InsertNoCache(ProviderClinicLink providerClinicLink, bool useExistingPK)
        {
            bool   isRandomKeys = Prefs.GetBoolNoCache(PrefName.RandomPrimaryKeys);
            string command      = "INSERT INTO providercliniclink (";

            if (!useExistingPK && isRandomKeys)
            {
                providerClinicLink.ProviderClinicLinkNum = ReplicationServers.GetKeyNoCache("providercliniclink", "ProviderClinicLinkNum");
            }
            if (isRandomKeys || useExistingPK)
            {
                command += "ProviderClinicLinkNum,";
            }
            command += "ProvNum,ClinicNum) VALUES(";
            if (isRandomKeys || useExistingPK)
            {
                command += POut.Long(providerClinicLink.ProviderClinicLinkNum) + ",";
            }
            command +=
                POut.Long(providerClinicLink.ProvNum) + ","
                + POut.Long(providerClinicLink.ClinicNum) + ")";
            if (useExistingPK || isRandomKeys)
            {
                Db.NonQ(command);
            }
            else
            {
                providerClinicLink.ProviderClinicLinkNum = Db.NonQ(command, true, "ProviderClinicLinkNum", "providerClinicLink");
            }
            return(providerClinicLink.ProviderClinicLinkNum);
        }
        ///<summary>Updates one ProviderClinicLink in the database.</summary>
        public static void Update(ProviderClinicLink providerClinicLink)
        {
            string command = "UPDATE providercliniclink SET "
                             + "ProvNum              =  " + POut.Long(providerClinicLink.ProvNum) + ", "
                             + "ClinicNum            =  " + POut.Long(providerClinicLink.ClinicNum) + " "
                             + "WHERE ProviderClinicLinkNum = " + POut.Long(providerClinicLink.ProviderClinicLinkNum);

            Db.NonQ(command);
        }
 ///<summary>Returns true if Update(ProviderClinicLink,ProviderClinicLink) 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(ProviderClinicLink providerClinicLink, ProviderClinicLink oldProviderClinicLink)
 {
     if (providerClinicLink.ProvNum != oldProviderClinicLink.ProvNum)
     {
         return(true);
     }
     if (providerClinicLink.ClinicNum != oldProviderClinicLink.ClinicNum)
     {
         return(true);
     }
     return(false);
 }
        ///<summary>Converts a DataTable to a list of objects.</summary>
        public static List <ProviderClinicLink> TableToList(DataTable table)
        {
            List <ProviderClinicLink> retVal = new List <ProviderClinicLink>();
            ProviderClinicLink        providerClinicLink;

            foreach (DataRow row in table.Rows)
            {
                providerClinicLink = new ProviderClinicLink();
                providerClinicLink.ProviderClinicLinkNum = PIn.Long(row["ProviderClinicLinkNum"].ToString());
                providerClinicLink.ProvNum   = PIn.Long(row["ProvNum"].ToString());
                providerClinicLink.ClinicNum = PIn.Long(row["ClinicNum"].ToString());
                retVal.Add(providerClinicLink);
            }
            return(retVal);
        }
 ///<summary>Inserts one ProviderClinicLink into the database.  Returns the new priKey.</summary>
 public static long Insert(ProviderClinicLink providerClinicLink)
 {
     return(Insert(providerClinicLink, false));
 }