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

如何再ClientDataSet下將SQL指令傳回Query元件

答題得分者是:jieshu
melt
一般會員


發表:9
回覆:6
積分:3
註冊:2003-07-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-23 11:59:35 IP:210.243.xxx.xxx 未訂閱
大家好: 如題...我用Query元件..DataSetProvider元件..ClientDataSet元件..DataSource元件組成我的架構 , 現在想下SQL指令將新增..刪除..修改等資料送回資料庫(因為有些參數要用到動態所以一定要用到SQL語法傳送),請問如何在ClientDataSet下將SQL指令傳回Query元件 謝謝
jieshu
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-23 12:35:04 IP:203.204.xxx.xxx 未訂閱
引言: 大家好: 如題...我用Query元件..DataSetProvider元件..ClientDataSet元件..DataSource元件組成我的架構 , 現在想下SQL指令將新增..刪除..修改等資料送回資料庫(因為有些參數要用到動態所以一定要用到SQL語法傳送),請問如何在ClientDataSet下將SQL指令傳回Query元件 謝謝
DataSetProvider的允許CommandText設成True 指令下在ClientDataSet的CommandText,參數的話就要動態產生。
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
Rain
資深會員


發表:31
回覆:236
積分:268
註冊:2003-02-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-23 13:22:14 IP:218.85.xxx.xxx 未訂閱
不清楚為何要這麼做,傳回SQL指令給Query可以這樣:    在伺服器端的Type library中增加設置Query的SQL文本過程:
procedure SetSQLText(const ACmdTxt: WideString); safecall; 
Query1.SQL.Text := ACmdTxt;    然後調用並傳回SQL語句:
Uses your_TLB;//用你的類型庫名稱替換
   
var
  ADisp: iRDMDisp;// 在_TLB類型庫單元中找到相應的介面名稱,替換iRDMDisp
begin
  ADisp := iRDMDisp(IDispatch(DCOMConnection1.AppServer));//假設用DCOM連接
  ADisp.SetSQLText(ClientDataSet1.CommandText);
end;
melt
一般會員


發表:9
回覆:6
積分:3
註冊:2003-07-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-23 19:54:09 IP:211.76.xxx.xxx 未訂閱
衷心感謝大家的回答: 想請問jieshu版主 DataSetProvider的允許CommandText設成True指的是什麼意思 麻煩請告知.....謝謝
melt
一般會員


發表:9
回覆:6
積分:3
註冊:2003-07-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-23 22:33:47 IP:211.76.xxx.xxx 未訂閱
衷心感謝大家的回答: 這個問題我以解決了....可以下SQL的SELECT指令,但是下DELETE指令時發生錯誤,麻煩各位高手幫我看看我的程式哪裡寫錯 程式碼: procedure TForm1.Button1Click(Sender: TObject); begin ClientDataSet2.Close; ClientDataSet2.CommandText:='delete * from BIOLIFE where SPECIES_NO=90020'; ClientDataSet2.Open; ClientDataSet2.ApplyUpdates(-1); end;
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-23 22:58:13 IP:202.39.xxx.xxx 未訂閱
ClientDataSet2.Open; 這行改成 ClientDataSet2.Execute; --- --<-<-<@
jieshu
版主


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-07-24 10:52:11 IP:203.204.xxx.xxx 未訂閱
引言: 衷心感謝大家的回答: 想請問jieshu版主 DataSetProvider的允許CommandText設成True指的是什麼意思 麻煩請告知.....謝謝
是指DataSetProvider.Options的poAllowCommandText設成True 你應該已經有設定了,不然是沒有辦法執行在CommandText裡的SQL 有傳回資料用Open,沒有用Execute。
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
melt
一般會員


發表:9
回覆:6
積分:3
註冊:2003-07-12

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-07-24 19:22:25 IP:211.76.xxx.xxx 未訂閱
感謝各位高手不吝解答 衷心感謝
系統時間:2024-05-07 5:01:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!