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

有關DataSetPrivider 的 ResolveToDataSet的問題

答題得分者是:pcplayer99
johnny2212
初階會員


發表:34
回覆:65
積分:39
註冊:2003-04-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-07 02:54:21 IP:61.226.xxx.xxx 未訂閱
ADOQuery1--> DataSetProvider1, ADOQuery1-->DataSource1 在ADOQuery1 中我的SQL 是 left Jojn 別的Table 為了能運作,所以我必須將 DataSetProvider1的 ResolveToDataSet設成true,交由ADOQuery1負責 (否則我就必須在DataSetProvider1上處理,會非常麻煩) 如此大致上是沒問題的(也就是ClientDataSet處理ADOQuery1是OK的) 但問題出在如下: DataSource1-->ADOQuery2,也就是ADOQuery2的Master是ADOQuery1, (ADOQuery2沒有DataSetProvider喔,也就是只有一個DataSetProvider 連到ADOQuery1上)一但我將DataSetProvider設成ture的話,他就不會去 處理ADOQuery2了,也就是ClientDataSet的"DataSetField"連結到ADOQuery2, 處理上會出問題,當然我也可以將其拆開(也就是ADOQuery用個別的DataSetProvider),但我不希望這麼作,因為Client端在處理上會比較麻煩 目前我只解決掉Insert的問題,只要在DataSetProvider1的BeforeApplyUpdates寫上ADOQuery2.Open就可以了,但修改,刪除 ADOQuery2的部分都會出現"Record not found",請問我該怎麼處理
pcplayer99
尊榮會員


發表:142
回覆:734
積分:590
註冊:2003-01-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-07 10:46:01 IP:218.17.xxx.xxx 未訂閱
你的问题恐怕只有自己处理了。 对于 Join 来的数据,丢给ADO处理,它会自动处理到各个Table中去。 但对于Master-Detail的数据,如果让DataSetProvider来处理,它会自动建立一个Transaction来把Master-Detail的几个表包在一起,然后提交。 也就是说,DataSetProvider可以自动处理Master-Detail的提交,但不能自动处理Jion来的多个Table的提交。 ADO正好相反,可以自动处理Join来的多个表的提交,但处理不了Master-Detail组成的多个表的提交。 因此,不管你用哪种方式,你都要自己手动处理一部分。
系統時間:2017-10-17 7:55:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!