請問DataSet的元件如何下SQL? |
尚未結案
|
lincw_darharnq
一般會員 發表:18 回覆:12 積分:6 註冊:2003-08-06 發送簡訊給我 |
各位大大
小弟剛接觸Delphi不久,小弟會始ADOQuery的物件來下SQL,可是在DataSet下,小弟沒輒了...
可否請各位大大,不吝教導小弟....雖然這個問題真的很簡單。感溫啦~ PS:是這樣子下SQL的嗎?
procedure TForm1.Button1Click(Sender: TObject);
begin
ADODataSet1.Close;
ADODataSet1.CommandText :=' SQL描述 ';
ADODataSet1.Active :=True;
end;
|
James
高階會員 發表:10 回覆:290 積分:220 註冊:2002-07-25 發送簡訊給我 |
|
terrychen
尊榮會員 發表:90 回覆:794 積分:501 註冊:2003-05-01 發送簡訊給我 |
|
lincw_darharnq
一般會員 發表:18 回覆:12 積分:6 註冊:2003-08-06 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ ADODataset是一個多元化的資料集元件﹐其擷取資料的方法有好幾種﹐也可以說它結合了ADOTable元件利用資料表名稱擷取資料和ADOQuery元件利用SQL語法擷取資料等等﹐既然其可以用多種方法來擷取資料庫﹐首先必須要指定其擷取資料的方法﹐在您的程式碼中加上一句﹕
procedure TForm1.Button1Click(Sender: TObject); begin ADODataSet1.Close; ADODataSet1.CommandType := cmdText; ADODataSet1.CommandText :=' SQL描述 '; ADODataSet1.Active :=True; //ADODataSet1.Open; 我們通常也可使用這種開啟的方法 end;雖然說﹐ADODataSet元件的預設CommandType屬性值是cmdText﹐但為了以防設計時期對其屬性值的改動﹐所以建議加上以上紅色部分﹒ 另外﹐ADODataSet元件不可使用無回傳值的SQL語法﹐即不可使用Insert, Delete, Update等等對資料庫有異動作用的SQL語法﹐一般只能使用Select的擷取查詢的SQL語法﹒ 參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟 |
seaturn99
版主 發表:69 回覆:427 積分:214 註冊:2003-08-25 發送簡訊給我 |
引言: 您好﹗ ADODataset是一個多元化的資料集元件﹐其擷取資料的方法有好幾種﹐也可以說它結合了ADOTable元件利用資料表名稱擷取資料和ADOQuery元件利用SQL語法擷取資料等等﹐既然其可以用多種方法來擷取資料庫﹐首先必須要指定其擷取資料的方法﹐在您的程式碼中加上一句﹕請問一下 cashxin2002 版主, 使用 TDataSet 元件有什麼特別的優點嗎?? ---- 我只會兩件事,這也不會,那也不會procedure TForm1.Button1Click(Sender: TObject); begin ADODataSet1.Close; ADODataSet1.CommandType := cmdText; ADODataSet1.CommandText :=' SQL描述 '; ADODataSet1.Active :=True; //ADODataSet1.Open; 我們通常也可使用這種開啟的方法 end;雖然說﹐ADODataSet元件的預設CommandType屬性值是cmdText﹐但為了以防設計時期對其屬性值的改動﹐所以建議加上以上紅色部分﹒ 另外﹐ADODataSet元件不可使用無回傳值的SQL語法﹐即不可使用Insert, Delete, Update等等對資料庫有異動作用的SQL語法﹐一般只能使用Select的擷取查詢的SQL語法﹒ 參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟 |
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 之前回复中有提到過﹐ADODataSet元件是一個廣義型的資料集元件﹐其擷取資料的方式有多種﹐也可以說是ADOTable和ADOQuery元件的集合體﹒ 此外﹐ADODataSet元件還有一個比較重要的用途﹐其可對檔案做匯入和匯出的動作﹐ADODataSet元件有兩個相關的方法﹐即LoadFromFile和SaveToFile﹐使用方法及說明如下﹕
SaveToFile
ADODataSet1.SaveToFile('D:\Xin.xml',pfXML);
//作用﹕將目前ADODataSet1所擷取的資料存成其它形態(XML)之檔案
參數﹕pfXML ==> 擴展語言格式
參數﹕pfADTG ==> 微軟高級資料表格式 LoadFromFile
ADODataSet1.LoadFromFile('D:\Xin.xml');
//作用﹕從一個現有檔案匯入資料到ADODataSet1中 兩種方法合并使用﹐可實做出資料公文包之類的功能﹐具體的方法﹐請參考之前ha0009版主的大作﹕
http://sourceprovide.deepen.com.tw/k_top/TestBriefCase.exe
相關的問題講解﹕
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=33443
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=33506 參考看看﹗ =====================
努力,相信會獲得美麗!
忻晟
------
忻晟 |
seaturn99
版主 發表:69 回覆:427 積分:214 註冊:2003-08-25 發送簡訊給我 |
引言: 您好﹗ 之前回复中有提到過﹐ADODataSet元件是一個廣義型的資料集元件﹐其擷取資料的方式有多種﹐也可以說是ADOTable和ADOQuery元件的集合體﹒ 此外﹐ADODataSet元件還有一個比較重要的用途﹐其可對檔案做匯入和匯出的動作﹐ADODataSet元件有兩個相關的方法﹐即LoadFromFile和SaveToFile﹐使用方法及說明如下﹕ SaveToFile ADODataSet1.SaveToFile('D:\Xin.xml',pfXML); //作用﹕將目前ADODataSet1所擷取的資料存成其它形態(XML)之檔案 參數﹕pfXML ==> 擴展語言格式 參數﹕pfADTG ==> 微軟高級資料表格式 LoadFromFile ADODataSet1.LoadFromFile('D:\Xin.xml'); //作用﹕從一個現有檔案匯入資料到ADODataSet1中 兩種方法合并使用﹐可實做出資料公文包之類的功能﹐具體的方法﹐請參考之前ha0009版主的大作﹕ http://sourceprovide.deepen.com.tw/k_top/TestBriefCase.exe 相關的問題講解﹕ http://delphi.ktop.com.tw/topic.php?TOPIC_ID=33443 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=33506 參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟感謝 cashxin2002 版主詳盡的說明與資料,我已經大致了解功能的輪廓了... 又多學了一課,Thanks... ---- 我只會兩件事,這也不會,那也不會 |
lincw_darharnq
一般會員 發表:18 回覆:12 積分:6 註冊:2003-08-06 發送簡訊給我 |
感謝各位大大
小弟的問題已解決了,而且在這幾天也對於DataSet有了更深一層的體驗。
小弟原先的問題是這樣的: procedure TForm1.Button1Click(Sender: TObject);
begin
ADODataSet1.Close;
ADODataSet1.CommandText :=' SQL描述 ';
ADODataSet1.Active :=True;
end; 想要問SQL在DataSet下如何執行? 後來發現小弟的整體架構沒問題啦....只是SQL太長了,問題出現在SQL分段。
因此修改為 procedure TForm1.Button1Click(Sender: TObject);
begin
ADODataSet1.Active :=False;
ADODataSet1.CommandText :=' SQL描述 ';
ADODataSet1.CommandText :=ADODataSet1.CommandText ' SQL描述 ';
......
ADODataSet1.Active :=True;
end; 這樣即可執行SQL了 感謝十方大德的熱情贊助~~ 因此小弟強力推薦Master-Detail的處理模式,從原先的ADOQuery-ADOTable改為ADODataSet1-ADODataSet2.....
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |