在用ado寫進銷存程式LockType設成那一個較適當? |
答題得分者是:cashxin2002
|
ry_lee
高階會員 發表:368 回覆:251 積分:123 註冊:2002-03-19 發送簡訊給我 |
|
likush
高階會員 發表:5 回覆:235 積分:103 註冊:2002-10-08 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ ADO之BatchUpdate功能的工作原理如下﹕
當ADO從資料來源處取得資料后﹐用戶端對于所有的資料異動都暫時儲存在用戶端的快儲記憶體中﹐而不是立即地更新回資料來源﹐當用戶端決定把所有的異動更新回資料來源時﹐則可呼叫ADO的UpdateBatch方法﹐當用戶端決定取消所有的異動時﹐則可呼叫ADO的CancelBatch方法﹒ ADO之BatchUpdate功能的优點如下﹕
1. 在用戶端和資料來源之間不會產生密切的互動﹐因此可降低資料來源的負荷﹐此外還有減少网絡的RoundTrip作用﹐比較适用于擁有大量用戶端的應用系統﹐對資料的異動速度非常快速﹒
2. 具有過濾資料的功能﹐通過FilterGroup屬性可在BatchUpdate模式下過濾符合特定條件的資料﹐如使用fgPendingRecords屬性值﹐只顯示被異動過﹐但尚未更新回資料來源的資料﹔如使用fgAffectedRecords屬性值﹐只顯示受到上一次更新回資料來源影響的資料(fgAffectedRecords屬性值)﹔等等﹒﹒﹒
3. 可檢視每筆資料的狀態﹐其狀態值可從ADO資料集元件的UpdateStatus方法回傳得知﹐如usUnmodified屬性值﹐代表目前的資料沒有被異動過﹔如usModified屬性值﹐代表目前的資料已被異動過﹔等等﹒﹒﹒
4. 可開發所謂的BriefCase模式的應用程式﹐此模式的應用程式是指用戶端應用程式從資料來源取得資料之后﹐便可和資料來源切斷連結﹐然后獨立的工作﹐用戶端對資料進行異動工作﹐甚至是可以把資料暫時存在用戶端的檔案中﹐待用戶端重新和資料庫來源連結時﹐再將資料從檔案中讀回﹐并更新到資料來源﹒ 基于以上的說明﹐您可參考自己進銷存專案的需求﹐再選擇是否要使用ADO的BatchUpdate功能﹐若要使用ADO的BatchUpdate功能時﹐需要注意以下几點﹕
1. CursorType的屬性值需為﹕ctKeySet或ctStatic
2. LockType的屬性值需要為﹕ltBatchOptimistic
3. 執行的SQL敘述需要為Select敘述
4. CursorLocation的屬性值建議為﹕clUseClient
當CursorLocation的屬性值為clUseServer時可也使用ADO的BatchUpdate功能﹐但之所以不建議使用的原因是其執行的效率并不理想﹐而且其不支援之前提到的Briefcase模式的應用程式﹒ 以上已見﹐僅供參考﹒ =========================
大病初愈﹐休養調整中...
=========================
------
忻晟 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |