刪除多筆資料 |
尚未結案
|
sun_chih_yen
一般會員 發表:40 回覆:33 積分:13 註冊:2003-10-03 發送簡訊給我 |
都會出現錯誤我的程式碼對嗎????
procedure TForm1.SpeedButton17Click(Sender: TObject);
var aaa,bbb:string;
begin
messagedlg('連續資料被刪除 !!!',mtwarning,[mbok],0);
aaa:=inputbox('刪除多筆資料','起始資料','');
bbb:=inputbox('刪除多筆資料','未筆資料','');
datamodule2.ADODataSet1.Close;
datamodule2.ADODataSet1.commandtype:=cmdtext;
datamodule2.ADODataSet1.CommandText:='';
datamodule2.ADODataSet1.CommandText:='delete from 客戶資料 where 客戶編號 between ' aaa ' and ' bbb;
datamodule2.ADODataSet1.CommandText:='';
datamodule2.adodataset1.CommandText:='select * from 客戶資料';
datamodule2.ADODataSet1.Open; end;
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ ADODataSet不支援無回傳資料的SQL語法﹐如Delete, Update, Insert, Drop, Alter等等﹐只能做單純的Select查詢語法之用﹐請將ADODataSet換成ADOQuery或者ADOCommand元件﹒以下以ADOQuery元件為例﹒ 將您的程式碼修改如下﹕
Procedure TForm1.SpeedButton17Click(Sender: TObject); Var aaa, bbb : string; begin Messagedlg('連續資料被刪除 !!!',mtwarning,[mbok],0); aaa:=inputbox('刪除多筆資料','起始資料',''); bbb:=inputbox('刪除多筆資料','未筆資料',''); Datamodule2.ADOQuery1.Close; Datamodule2.ADOQuery1.Text := 'delete from 客戶資料 where 客戶編號 between ''' aaa ''' and ''' bbb ''''; Datamodule2.ADOQuery1.ExecSQL;//執行Delete //此處一個注意的地方﹐就是客戶編號欄位須為字串形態欄位 Datamodule2.ADOQuery1.Close; Datamodule2.ADOQuery.Text:='select * from 客戶資料'; Datamodule2.ADOQuery.Open; end;之前您有問過ADOQuery.ExecSQL;是什么意思﹐回覆如下﹕ ADOQuery有兩個執行方法﹐一個是Open﹐一個是ExecSQL﹒ Open是用作Select查詢語法之后﹐開啟資料表﹐即有回傳之資料﹒ ExecSQL是用作于無回傳資料語法之后(如Delete, Update, Insert等)﹐執行方法后﹐無資料回傳﹐直接對資料表進行異動﹒ 參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟 發表人 - cashxin2002 於 2003/10/24 14:42:09
------
忻晟 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |