如何從 ClientDataSet 中參考出 SQLDataSet ? |
答題得分者是:mustapha.wang
|
Diviner
初階會員 發表:36 回覆:112 積分:34 註冊:2002-03-13 發送簡訊給我 |
若案子中存取的方法是: TSQLDataSet → TDataSetProvider → TClientDataSet, 但從 ClientDataSet 中似乎參考不到 DataSetProvider, 因為它是用 ProviderName 來連結起兩個 Component 的。 我目前的方法是從 ClientDataSet 的 Owner 屬性中, 以 Components 慢慢地用 ProviderName 把 DataSetProvider 找出來, 方法很 dummy, 有沒有更好的方法呢? --
小卜子
------
-- 小卜子 | ||
jieshu
版主 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言: 若案子中存取的方法是: 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.taconet.com.tw/jieshu/ |
||
Diviner
初階會員 發表:36 回覆:112 積分:34 註冊:2002-03-13 發送簡訊給我 |
引言: 有必要去找出他的DataSet嗎?透過ClientDataSet應該都可以操作了吧!真的需要的話請用要啊, 因為我的 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 中所指定的資料排序效果了。 -- 小卜子var lt_DS : TSQLDataSet; begin lt_DS := (FindComponent(ClientDataSet1.ProviderName) as TDataSetProvider).DataSet as TSQLDataSet;
------
-- 小卜子 |
||
jieshu
版主 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言: 要啊, 因為我的 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.taconet.com.tw/jieshu/ |
||
Diviner
初階會員 發表:36 回覆:112 積分:34 註冊:2002-03-13 發送簡訊給我 |
引言:程式碼已寫了很多, 修改不容易… -- 小卜子引言: 要啊, 因為我的 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 發送簡訊給我 |
|||
Diviner
初階會員 發表:36 回覆:112 積分:34 註冊:2002-03-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |