3. Where Clause for Update/Delete:這項設定是對資料庫並發控制最重要的一項,要仔細設定。
當調用資料視窗的Update方法時,資料視窗使用SQL語句將資料結果傳遞到資料庫系統,這項設定決定在SQL語 句的where子句中使用哪些列作為整條記錄的標誌。
(a)Key Columns:僅僅使用關鍵字作為整條記錄的標誌。在網路環境下不推薦使用此選項。如果兩個使用者同時 修改了同一條記錄,後進行儲存操作的人會把先儲存的人所做的修改"抹掉"而毫無察覺。
如果選擇Key Columns,那麼Update對應的SQL語句是:
Update A.xh,A.xm,A.csrq,A.py
Set ... //使用者修改後的新值
Where A.xh=... //使用者修改前的舊值
如果被修改的不是xh列,那麼後一個使用者將察覺不到前一個使用者所做的修改。
(b)Key and Updatable Columns:使用關鍵字和所有可更新列作為記錄的標誌。
採用(a)中的例子,Update對應的SQL語句將是:
Update A.xh,A.xm,A.csrq,A.py
Set ... //使用者修改後的新值
Where A.xh=...
And A.xm=...
And A.csrq...
And A.py=... //使用者修改前的舊值
在這種情況下,後一個使用者的Update將不能成功執行。
(c)Key and Modified Columns:使用關鍵字和所有已更新列作為記錄的標誌。
功能和(b)很相似,不同點在於(b)的前端執行速度快,資料庫端慢;而(c)則剛好相反。
4. Key Modification:該項設定決定了更新資料庫的方法。
(a)Use Delete then Insert:先刪除,再插入。
(b)Use Update:直接修改。
建議使用(b)選項。