예제 #1
0
 public static data.baseDS.sysAutoKeyPendingRow UpdateData(data.baseDS.sysAutoKeyPendingRow row)
 {
     data.baseDS.sysAutoKeyPendingDataTable tbl = new data.baseDS.sysAutoKeyPendingDataTable();
     tbl.ImportRow(row);
     myClient.UpdateSysAutoKeyPending(ref tbl);
     row.AcceptChanges();
     return(tbl[0]);
 }
예제 #2
0
 public static data.baseDS.sysAutoKeyPendingRow UpdateAutoKeyPending(string key, string value, DateTime timestamp)
 {
     data.baseDS.sysAutoKeyPendingDataTable tbl = sysAutoKeyPendingTA.GetByKeyValue(key, value);
     data.baseDS.sysAutoKeyPendingRow       row;
     if (tbl.Count > 0)
     {
         row = tbl[0]; row.timeStamp = timestamp;
     }
     else
     {
         row     = tbl.NewsysAutoKeyPendingRow();
         row.key = key; row.value = value; row.timeStamp = timestamp;
         tbl.AddsysAutoKeyPendingRow(row);
     }
     sysAutoKeyPendingTA.Update(row);
     row.AcceptChanges();
     return(row);
 }
예제 #3
0
        public static common.myAutoKeyInfo GetAutoKey(string key, bool usePending)
        {
            DateTime curTimeStamp = common.Consts.constNullDate;

            data.baseDS.sysAutoKeyPendingDataTable sysAutoKeyPendingTbl = new data.baseDS.sysAutoKeyPendingDataTable();
            //First try to re-used unused keys if required
            if (usePending)
            {
                curTimeStamp = DateTime.Now;
                DateTime minTimeStamp = curTimeStamp.AddSeconds(-Settings.sysTimeOut_AutoKey);
                sysAutoKeyPendingTbl.Clear();
                DbAccess.LoadData(sysAutoKeyPendingTbl, key);
                if (sysAutoKeyPendingTbl.Count > 0)
                {
                    for (int idx = 0; idx < sysAutoKeyPendingTbl.Count; idx++)
                    {
                        //Still valid : ignore it
                        if (sysAutoKeyPendingTbl[idx].timeStamp > minTimeStamp)
                        {
                            continue;
                        }

                        //The the first invalid key will be used. Updating the timestamp to make it valid again.
                        sysAutoKeyPendingTbl[idx].timeStamp = curTimeStamp;
                        DbAccess.UpdateData(sysAutoKeyPendingTbl[idx]);
                        return(new common.myAutoKeyInfo(key, sysAutoKeyPendingTbl[idx].value, sysAutoKeyPendingTbl[idx].value.Trim()));
                    }
                }
            }
            //Then, create a new key and pending key if required
            data.baseDS.sysAutoKeyRow sysAutoKeyRow = DbAccess.NewAutoKeyValue(key);
            if (usePending)
            {
                DbAccess.CreateAutoPendingKey(sysAutoKeyRow.key, sysAutoKeyRow.value.ToString(), curTimeStamp);
            }
            string valueStr = sysAutoKeyRow.value.ToString().Trim();

            return(new common.myAutoKeyInfo(key, valueStr, valueStr));
        }
예제 #4
0
 public void UpdateSysAutoKeyPending(ref data.baseDS.sysAutoKeyPendingDataTable tbl)
 {
     DbAccess.UpdateData(tbl);
 }
예제 #5
0
 public static data.baseDS.sysAutoKeyPendingRow UpdateData(data.baseDS.sysAutoKeyPendingRow row)
 {
     data.baseDS.sysAutoKeyPendingDataTable tbl = new data.baseDS.sysAutoKeyPendingDataTable();
     tbl.ImportRow(row);
     myClient.UpdateSysAutoKeyPending(ref tbl);
     row.AcceptChanges();
     return tbl[0];
 }
예제 #6
0
        public static common.myAutoKeyInfo GetAutoKey(string key, bool usePending)
        {
            DateTime curTimeStamp = common.Consts.constNullDate;
            data.baseDS.sysAutoKeyPendingDataTable sysAutoKeyPendingTbl = new data.baseDS.sysAutoKeyPendingDataTable();
            //First try to re-used unused keys if required
            if (usePending)
            {
                curTimeStamp = DateTime.Now;
                DateTime minTimeStamp = curTimeStamp.AddSeconds(-Settings.sysTimeOut_AutoKey);
                sysAutoKeyPendingTbl.Clear();
                DbAccess.LoadData(sysAutoKeyPendingTbl, key);
                if (sysAutoKeyPendingTbl.Count > 0)
                {
                    for (int idx = 0; idx < sysAutoKeyPendingTbl.Count; idx++)
                    {
                        //Still valid : ignore it
                        if (sysAutoKeyPendingTbl[idx].timeStamp > minTimeStamp) continue;

                        //The the first invalid key will be used. Updating the timestamp to make it valid again.
                        sysAutoKeyPendingTbl[idx].timeStamp = curTimeStamp;
                        DbAccess.UpdateData(sysAutoKeyPendingTbl[idx]);
                        return new common.myAutoKeyInfo(key, sysAutoKeyPendingTbl[idx].value, sysAutoKeyPendingTbl[idx].value.Trim());
                    }
                }
            }
            //Then, create a new key and pending key if required
            data.baseDS.sysAutoKeyRow sysAutoKeyRow = DbAccess.NewAutoKeyValue(key);
            if (usePending) DbAccess.CreateAutoPendingKey(sysAutoKeyRow.key, sysAutoKeyRow.value.ToString(), curTimeStamp);
            string valueStr = sysAutoKeyRow.value.ToString().Trim();
            return new common.myAutoKeyInfo(key, valueStr, valueStr);
        }
예제 #7
0
 public static void UpdateData(data.baseDS.sysAutoKeyPendingDataTable data)
 {
     sysAutoKeyPendingTA.Update(data);
     data.AcceptChanges();
 }
예제 #8
0
 public static void LoadData(data.baseDS.sysAutoKeyPendingDataTable tbl, string key)
 {
     sysAutoKeyPendingTA.ClearBeforeFill = false;
     sysAutoKeyPendingTA.FillByKey(tbl, key);
 }