全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1798
推到 Plurk!
推到 Facebook!

如何從 ClientDataSet 中參考出 SQLDataSet ?

答題得分者是:mustapha.wang
Diviner
初階會員


發表:36
回覆:112
積分:34
註冊:2002-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-15 16:19:23 IP:218.103.xxx.xxx 未訂閱
若案子中存取的方法是: TSQLDataSet → TDataSetProvider → TClientDataSet, 但從 ClientDataSet 中似乎參考不到 DataSetProvider, 因為它是用 ProviderName 來連結起兩個 Component 的。 我目前的方法是從 ClientDataSet 的 Owner 屬性中, 以 Components 慢慢地用 ProviderName 把 DataSetProvider 找出來, 方法很 dummy, 有沒有更好的方法呢? -- 小卜子
------
--
小卜子
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-15 16:38:42 IP:203.204.xxx.xxx 未訂閱
引言: 若案子中存取的方法是: TSQLDataSet → TDataSetProvider → TClientDataSet, 但從 ClientDataSet 中似乎參考不到 DataSetProvider, 因為它是用 ProviderName 來連結起兩個 Component 的。 我目前的方法是從 ClientDataSet 的 Owner 屬性中, 以 Components 慢慢地用 ProviderName 把 DataSetProvider 找出來, 方法很 dummy, 有沒有更好的方法呢? -- 小卜子
有必要去找出他的DataSet嗎?透過ClientDataSet應該都可以操作了吧!真的需要的話請用
var
  lt_DS : TSQLDataSet;
begin
  lt_DS := (FindComponent(ClientDataSet1.ProviderName) as TDataSetProvider).DataSet as TSQLDataSet;
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.coss.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
Diviner
初階會員


發表:36
回覆:112
積分:34
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-15 17:51:30 IP:218.103.xxx.xxx 未訂閱
引言: 有必要去找出他的DataSet嗎?透過ClientDataSet應該都可以操作了吧!真的需要的話請用
var
  lt_DS : TSQLDataSet;
begin
  lt_DS := (FindComponent(ClientDataSet1.ProviderName) as TDataSetProvider).DataSet as TSQLDataSet;
要啊, 因為我的 Select SQL statement 放在 SQLDataSet 的 CommandText, 當這個 Select statement 帶有 Order 的時候, 那些接上這個 SQLDataSet 的 ClientDataSet 的 IndexFieldNames 都要作出相應的改動, 否則就會失掉了資料排序的效果了; 原因是我的 ClientDataSet 有時是另一個 ClientDataSet 的 Detail 關聯關係, 要用上了 IndexFieldNames, 這時若果只放上 Foreign Key 進 IndexFieldNames, 則會失掉了資料排序的效果, 所以我要取得 SQLDataSet 的 CommandText 再做一堆分析工作, 把 Order Key 一個個排好, 以分號分隔的形式加進這個 IndexFieldNames 中, 才能既保有 Master/Detail 的連繫, 又不失 SQL Statement 中所指定的資料排序效果了。 -- 小卜子
------
--
小卜子
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-15 19:16:04 IP:203.204.xxx.xxx 未訂閱
引言: 要啊, 因為我的 Select SQL statement 放在 SQLDataSet 的 CommandText, 當這個 Select statement 帶有 Order 的時候, 那些接上這個 SQLDataSet 的 ClientDataSet 的 IndexFieldNames 都要作出相應的改動, 否則就會失掉了資料排序的效果了; 原因是我的 ClientDataSet 有時是另一個 ClientDataSet 的 Detail 關聯關係, 要用上了 IndexFieldNames, 這時若果只放上 Foreign Key 進 IndexFieldNames, 則會失掉了資料排序的效果, 所以我要取得 SQLDataSet 的 CommandText 再做一堆分析工作, 把 Order Key 一個個排好, 以分號分隔的形式加進這個 IndexFieldNames 中, 才能既保有 Master/Detail 的連繫, 又不失 SQL Statement 中所指定的資料排序效果了。 -- 小卜子
那為什麼不直接下SQL給ClientDataSet就好了呢?
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.coss.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
Diviner
初階會員


發表:36
回覆:112
積分:34
註冊:2002-03-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-19 10:14:42 IP:218.103.xxx.xxx 未訂閱
引言:
引言: 要啊, 因為我的 Select SQL statement 放在 SQLDataSet 的 CommandText, 當這個 Select statement 帶有 Order 的時候, 那些接上這個 SQLDataSet 的 ClientDataSet 的 IndexFieldNames 都要作出相應的改動, 否則就會失掉了資料排序的效果了; 原因是我的 ClientDataSet 有時是另一個 ClientDataSet 的 Detail 關聯關係, 要用上了 IndexFieldNames, 這時若果只放上 Foreign Key 進 IndexFieldNames, 則會失掉了資料排序的效果, 所以我要取得 SQLDataSet 的 CommandText 再做一堆分析工作, 把 Order Key 一個個排好, 以分號分隔的形式加進這個 IndexFieldNames 中, 才能既保有 Master/Detail 的連繫, 又不失 SQL Statement 中所指定的資料排序效果了。 -- 小卜子
那為什麼不直接下SQL給ClientDataSet就好了呢?
程式碼已寫了很多, 修改不容易… -- 小卜子
------
--
小卜子
mustapha.wang
資深會員


發表:89
回覆:409
積分:274
註冊:2002-03-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-04-19 10:51:20 IP:218.80.xxx.xxx 未訂閱
TClientDataSet在Client,TSQLDataSet → TDataSetProvider在Server,從 ClientDataSet 的 Owner,及FindComponent如何找得到? 应该把TClientDataSet.ProviderName传给Server来找吧。     久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听
------
江上何人初见月,江月何年初照人
Diviner
初階會員


發表:36
回覆:112
積分:34
註冊:2002-03-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-06-25 01:52:18 IP:61.10.xxx.xxx 未訂閱
引言: TClientDataSet在Client,TSQLDataSet → TDataSetProvider在Server,從 ClientDataSet 的 Owner,及FindComponent如何找得到? 应该把TClientDataSet.ProviderName传给Server来找吧。
有見地。 -- 小卜子
------
--
小卜子
系統時間:2024-04-23 22:26:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!