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

請如何在ClientDataSet下將SQL指令傳回DBGrid元件?

答題得分者是:Fishman
mathewzhao
中階會員


發表:121
回覆:164
積分:67
註冊:2003-04-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-13 11:02:39 IP:219.144.xxx.xxx 未訂閱
各位先進好!  我用:  1)Query元件  2)DataSetProvider元件  3)ClientDataSet元件  4)DataSource元件  5)DBGrid   組成我的架構. 現在想下SQL指令將查詢資料送回到DBGrid,我是如下做的,但沒有任何資料傳回.    
 
 (1)資料傳送:
  Query-->DataSetProvider-->ClientDataSet-->DataSource-->DBGrid      (2) 
  DataSetProvider的poAllowCommandText設成True      (3) SQL
         with clientdataset1 do
              begin
                 Close;
                 commandtext := 'select field1 from table1 '; 
                 open;
                 ApplyUpdates(-1);
              end;
  
Q:請如何在ClientDataSet下將SQL指令傳回DBGrid元件? 謝謝!
jieshu
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-13 11:21:00 IP:203.204.xxx.xxx 未訂閱
引言:
         with clientdataset1 do
              begin
                 Close;
                 commandtext := 'select field1 from table1 '; 
                 open;
                 ApplyUpdates(-1);
              end;
Q:請如何在ClientDataSet下將SQL指令傳回DBGrid元件? 謝謝!
請問為什麼要加ApplyUpdates(-1),你是查資料,又不是要更新資料。你的連接設定都對,沒有傳回,有出現什麼錯誤訊息嗎?如果沒有請確定你的各項連結是否真的正確。
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.coss.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
mathewzhao
中階會員


發表:121
回覆:164
積分:67
註冊:2003-04-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-13 12:29:00 IP:219.144.xxx.xxx 未訂閱
感謝前輩jieshu的回應!    1)沒有錯誤訊息  2)DBGrid中沒有資料顯示,但透過SQL Monitor看到資料已經取回  3)元件的連接: 
 
Query1: 
 DataBaseName:XXX     DataSetProvider1: 
 DataSet:Query2
 Options.poAllowCommandText:true     ClientDataSet1: 
 ProviderName:DataSetProvider1     DataSource1: 
 DataSet:ClientDataSet1     DBGrid1: 
 DataSource:DataSource1 
這5個元件的其餘Properties均為Default.
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-13 13:00:47 IP:210.65.xxx.xxx 未訂閱
Hi:    mathewzhao,幾點建議如下:    1.檢查一下 ClientDataSet 下的欄位設定,Visible 是否被設為 False? 2.檢查一下 DBGrid 下的欄位設定,Visible 是否被設為 False? Width 是否為 0 ? 3.拉一個 DBEdit,檢查 Data 是否回傳至 ClientDataSet     ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
mathewzhao
中階會員


發表:121
回覆:164
積分:67
註冊:2003-04-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-13 16:34:16 IP:219.144.xxx.xxx 未訂閱
感謝前輩Fishman的回應! 原因已經找到,是ClientDataSet下的欄位設定有問題. 但還有2個不解之處,不知該如何解決? Q1:資料傳回給ClientDataSet時,一些FieldField的資料沒有出現在DBGrid,在DBGrid中也沒有顯示Title. 我觀察後發現: 1)這些Field的Properties與其他Field相比,只是DisPlayLabel,FieldName,Name不同. 2)從資料內容上比較: 這些Field的資料只含有數字. Q2:在用ClientDataSet下SQL指令後,如何改變DBGrid的Title?
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-13 17:18:08 IP:210.65.xxx.xxx 未訂閱
Hi:    Q1. Double Click DBGrid,檢查是否所有來為都有設定進來,且 Visible 是否被設為 True? Width 是否不為 0 ?    Q2. DBGrid 的 Title 問題,請參考 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=42333 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=42008 ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
系統時間:2024-05-07 14:34:10
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!