TADOQuery.DeleteRecord删除所有记录时异常? |
尚未結案
|
lovelypp
初階會員 發表:122 回覆:111 積分:46 註冊:2003-02-19 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
sos_admin
版主 發表:121 回覆:697 積分:768 註冊:2003-07-23 發送簡訊給我 |
//删除指定的Tadoquery中所有记录
procedure adodelall(const adoquery:tadoquery);
begin
if not adoquery.Active then exit;
while adoquery.RecordCount>0 do
begin
adoquery.First ;
adoquery.Delete ;
end;
end; //使用如下:
procedure TForm1.Button2Click(Sender: TObject);
begin
adodelall(adoquery1);
end; 供参考哦
|
lovelypp
初階會員 發表:122 回覆:111 積分:46 註冊:2003-02-19 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
引言: 有无一个函数就能解决问题?而不要用while?您好﹒ 您所說的一個函數是指何物﹖hagar版主有提供Delete From的SQL語法﹐這應該就是最直接﹐最簡單的方法了﹒ 比如說你要刪除[客戶]資料表中的所有資料﹐程式碼可下﹕ begin ADOQuery1.Close; ADOQuery1.SQL.Text := 'Delete From 客戶'; ADOQuery1.ExecSQL; ADOQuery1.SQL.Text := 'Select * From 客戶'; ADOQuery1.Open; //重新開啟資料表﹐此時[客戶]資料表中已經沒有任何資料了 end;利用SQL的Delete From...還可以方便地作下需要刪除資料的條件﹐比如說刪除[客戶]資料表中所有[客戶編號]欄位值為'A001'的資料﹐程式碼可下﹕ begin ADOQuery1.Close; ADOQuery1.SQL.Text := 'Delete From 客戶 Where 客戶編號='A001''; //此處的客戶編號為字串形態﹐若為數字形態的話﹐就不需要左右的引號 //若[客戶編號]值需要讓使用者自行輸入的話﹐也可將上句改為以下兩句﹕ //ADOQuery.SQL.Text := 'Delete From 客戶 Where 客戶編號=:NUMBER'; //ADOQuery1.Parameters.ParamByName('NUMBER') := Edit1.Text; ADOQuery1.ExecSQL; ADOQuery1.SQL.Text := 'Select * From 客戶'; ADOQuery1.Open; //重新開啟資料表﹐此時[客戶]資料表中已經沒有[客戶編號]為A001的資料了 end;參考看看﹗ 努力,相信會獲得美麗! 忻晟 發表人 - cashxin2002 於 2003/08/09 22:16:55
------
忻晟 |
lovelypp
初階會員 發表:122 回覆:111 積分:46 註冊:2003-02-19 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
sos_admin
版主 發表:121 回覆:697 積分:768 註冊:2003-07-23 發送簡訊給我 |
|
lovelypp
初階會員 發表:122 回覆:111 積分:46 註冊:2003-02-19 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
引言: DBGrid元件只是一個感知元件﹐負責將對應的資料集元件(如ADOQuery)中的資料顯示出來而已﹐您所指的將与ADOQuery元件相連接的DBGrid中的記錄全部刪除﹐似乎又不是想把資料表中的資料錄刪除﹐ ==================================================================== 你说得没错。 我的目的就是这个您好﹗ 即然不想刪除資料錄﹐只是使DBGrid元件中不顯示資料的話﹐切斷資料集元件(ADOQuery1)的連線就好啦﹒ 但在斷開連接的時候﹐DBGrid元件中也沒有東西顯示了﹐如果需要在斷開連接的時候﹐DBGrid元件中依然顯示其對應之欄位名稱的話﹐可以在設計時期先在DBGrid元件的編輯器中將各欄位名稱加入﹐這樣的話﹐即使資料集元件(ADOQuery1)已經斷開連接了﹐DBGrid依然是會顯示欄位名稱的﹒ //開啟DBGrid欄位編輯器方法﹕在DBGrid元件中雙擊即可 //加入各位欄位名方法﹕在欄位編輯器中點滑鼠右鍵﹐選擇Add All Fields即可 參考看看﹗ 努力,相信會獲得美麗! 忻晟 發表人 - cashxin2002 於 2003/08/10 16:33:43
------
忻晟 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |