大多數情況下,您的應用程式將在網路環境下執行。有可能會有多個人同時使用乙個程式。在這種情況下使用資料視窗應注意併發控制問題。
資料視窗的併發性控制可以用"rows"選單的"update properties"項進行設定。
1. allow updates:如果選中,則整個資料視窗允許修改,否則不允許;
2. table to update:在多表查詢時,用該項選擇要設定的表名;
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)選項。)
5. updatable columns:用來選擇"可更新列",這裡所做的選擇與3.(b)對應,沒有選中的列將不會出現在update語句中。
6. unique key columns:用來選擇關鍵字,這裡所做的選擇與3.(a)對應,沒有選中的列將不會出現在update語句中。
資料視窗中有三種更新方式選擇: 1:以主鍵值:舉例說明吧假如:a,b兩操作員,同時操作一條記錄,記錄為001,100其中001為主鍵,那麼假如a將100改為200,此時b也將100改為300,提交的時候,假如a處理先,就會改為300了。
2:以所有字段:這種的話,當上述例子b開始更新的時候,100已經改為200了,b更新失敗。
3:以主鍵以及修改值。如果按上例,b還是不成功,但是,這種方式假如b更新的字段與a的不同,那麼 就會成功。
原文:
Unity三種更新方式的區別
從字面意義來看,update是更新,fixupdate是固定更新,lateupdate是晚於更新。從實際應用來講三者區別又是什麼呢?update和fixupdate在unity中都是用來更新的,在某一時刻呼叫,但是update的更新頻率是根據幀的重新整理來執行的,既每幀呼叫一次,這樣雖然方便但是也會...
DRAM的三種重新整理方式
定時重新整理的原因 由於儲存單元的訪問是隨機的,有可能某些儲存單元長期得不到訪問,不進行儲存器的讀 寫操作,其儲存單元內的原資訊將會慢慢消失,為此,必須採用定時重新整理的方法,它規定在一定的時間內,對動態ram的全部基本單元電路必作一次重新整理,一般取2ms,即重新整理周期 再生週期 重新整理與行位...
OCCI三種更新資料方式比較
方法1 最基本的使用executeupdate,多條記錄後提交事務。示意 如下 environment env environment createenvironment zhs16gbk utf8 connection conn env createconnection scott tiger 1...