如何再ClientDataSet下將SQL指令傳回Query元件 |
答題得分者是:jieshu
|
melt
一般會員 發表:9 回覆:6 積分:3 註冊:2003-07-12 發送簡訊給我 |
|||
jieshu
版主 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言: 大家好: 如題...我用Query元件..DataSetProvider元件..ClientDataSet元件..DataSource元件組成我的架構 , 現在想下SQL指令將新增..刪除..修改等資料送回資料庫(因為有些參數要用到動態所以一定要用到SQL語法傳送),請問如何在ClientDataSet下將SQL指令傳回Query元件 謝謝DataSetProvider的允許CommandText設成True 指令下在ClientDataSet的CommandText,參數的話就要動態產生。
------
人生有夢,逐夢而行 人若為善,福雖未至,禍已遠離 人若為惡,禍雖未至,福已遠離 http://www.taconet.com.tw/jieshu/ |
||
Rain
資深會員 發表:31 回覆:236 積分:268 註冊:2003-02-17 發送簡訊給我 |
不清楚為何要這麼做,傳回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 發送簡訊給我 |
|||
melt
一般會員 發表:9 回覆:6 積分:3 註冊:2003-07-12 發送簡訊給我 |
衷心感謝大家的回答:
這個問題我以解決了....可以下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 發送簡訊給我 |
|||
jieshu
版主 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言: 衷心感謝大家的回答: 想請問jieshu版主 DataSetProvider的允許CommandText設成True指的是什麼意思 麻煩請告知.....謝謝是指DataSetProvider.Options的poAllowCommandText設成True 你應該已經有設定了,不然是沒有辦法執行在CommandText裡的SQL 有傳回資料用Open,沒有用Execute。
------
人生有夢,逐夢而行 人若為善,福雖未至,禍已遠離 人若為惡,禍雖未至,福已遠離 http://www.taconet.com.tw/jieshu/ |
||
melt
一般會員 發表:9 回覆:6 積分:3 註冊:2003-07-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |