線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2108
推到 Plurk!
推到 Facebook!

ADODataSet 新增/修改問題

尚未結案
sginpt
一般會員


發表:9
回覆:8
積分:3
註冊:2003-06-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-14 16:26:56 IP:211.23.xxx.xxx 未訂閱
小弟我的問題是 A畫面是作為瀏覽用途的,當新增/修改時傳DATASOURCE(已指定DATASET)與TACTION到B畫面,我在B畫面有設變數來取代從A畫面傳過來的參數,存檔時會沒有存到資料庫,請問我是哪裡疏忽了? Thank a lot! PS:若是修改狀態,B畫面會帶出資料。 我只下Insert/Edit/Post DataSet->Clientside,BatchOptimistic DB:MSSQL 發表人 - sginpt 於 2004/09/14 16:49:12
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-14 17:45:13 IP:202.62.xxx.xxx 未訂閱
您好﹗    如果是使用BatchUpate功能時﹐需要注意配合使用UpdateBatch和CancelBatch方法來确認或者取消所有的異動作業﹒因為BatchUpdate的工作原理是當ADO從資料來源處取回資料后﹐用戶端對所有的資料異動都暫時儲存在用戶端的快取記憶體中﹐而不是立即更新回后端的資料庫﹒
确認異動作業方法
begin
  ADODataSet1.UpdateBatch;
end;
取消異動作業方法
begin
  ADODataSet1.CancelBatch;
end;
發表人 - cashxin2002 於 2004/09/14 17:47:12
------
忻晟
sginpt
一般會員


發表:9
回覆:8
積分:3
註冊:2003-06-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-14 18:16:48 IP:211.23.xxx.xxx 未訂閱
cashxin2002你好 你的意思是說在存檔或CANCEL時不能下ADODataSet.Post/Cancel 而是ADODataSet.UpdateBatch/CancelBatch嗎? 我試了一下在B畫面我是以DATASOURCE變數接收A畫面的DS 可是我改成 dsDetail.dataset.UpdateBatch DEBUD時會說我沒宣告UpdateBatch Why? 發表人 - sginpt 於 2004/09/14 18:35:12
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-09-15 09:29:22 IP:202.62.xxx.xxx 未訂閱
您好﹗    看來我的表達水准真的很糟糕﹐讓您誤會了 前篇有提到﹐><>========================= 大病初愈﹐休養調整中... =========================
------
忻晟
sginpt
一般會員


發表:9
回覆:8
積分:3
註冊:2003-06-08

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-09-15 12:14:42 IP:211.23.xxx.xxx 未訂閱
cashxin2002您好 不好意思,不是你表達不好,是我對ADO不求甚解 在使用>
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-09-15 13:01:31 IP:202.62.xxx.xxx 未訂閱
太客氣了﹐sginpt兄﹒    就您的問題回答如下﹕ 1﹒在使用BATCHUPDATE時該怎麼做才會將資料寫到資料庫呢 答﹕當需要把快取記憶體中所有的異動回存到后端資料庫來源﹕
begin
  ADODataSet1.UpdateBatch;
end;
當需要把快取記憶體中所有的異動取消﹐即放棄之前在快取記憶體中的異動﹐不回存到后端資料庫﹕
begin
  ADODataSet1.CancelBatch;
end;
2﹒UpdateBatch方法要怎麼用? 答﹕啟用UpdateBatch功能的前提條件﹕ 使用ADO之BatchUpdate功能之前提條件 CursorType屬性值需為﹕ctKeySet 或 ctStatic a. LockType屬性值需為﹕LtBatchUpdate b. 執行的SQL敘述需為﹕Select 敘述 c. CursorLocation屬性值需為﹕clUseClient 當CursorLocation屬性值為clUseServer時也可使用BatchUpdate功能﹐ 只是說其缺點是無法使用ADO的Briefcase模型功能﹐且在執行效率上不佳﹒ 完成如上的設定就已經自動開啟Batchupdate功能了﹐在對資料庫進行異動時(如Post, Insert, Delete)﹐并非對后端的資料庫來源﹐而是針對前端的快取記憶體中的資料而言﹐因為Batchupdate功能已將后端資料庫中的資料抓取到前端的快取記憶體中了﹐回存后端資料庫時請參考第一點﹒ ========================= 大病初愈﹐休養調整中... ========================= 發表人 - cashxin2002 於 2004/09/15 14:02:15
------
忻晟
系統時間:2024-09-29 6:18:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!