我试了,不行啊.这是程序,你看看应该加到哪儿? begin trainno:=Edit1.Text; //获取订单号 query1.Close; query1.SQL.clear; //修改订单数据库 query1.sql.Add('select * from train where trainNo=:trainNo and StaDate=:StaDate'); query1.ParamByName('trainNo').Asstring:=trainno; query1.ParamByName('StaDate').AsDatetime:=strtodate(edit2.Text); query1.Open; if query1.RecNo=0 then begin application.MessageBox('此车次不存在! ','提示信息',mb_ok) end else begin query1.Close; query1.SQL.clear; query1.sql.Add('delete from train where trainNo=:trainNo and StaDate=:StaDate'); //删除订单 query1.ParamByName('trainNo').Asstring:=trainno; query1.ParamByName('StaDate').Asdatetime:=strtodate(edit2.Text); query1.ExecSQL; query1.close; application.MessageBox('成功删除! ','提示信息',mb_ok) end; edit1.Text:=''; edit2.Text:=''; end
关联DBGrid的DataSet的CacheUpdates属性设置成True。query1.sql.Add('delete from train where trainNo=:trainNo and StaDate=:StaDate'); //删除订单 query1.ParamByName('trainNo').Asstring:=trainno; query1.ParamByName('StaDate').Asdatetime:=strtodate(edit2.Text); query1.ExecSQL; query1.close; //这句是多余的加上下面几句 if DBGrid1.DataSource.DataSet.locate('trainNo;StaDate',VarArrayOf([trainno,StrToDateTime(Edit2.Text)]),[]) then DBGrid1.DataSource.DataSet.Delete;
begin
trainno:=Edit1.Text; //获取订单号
query1.Close;
query1.SQL.clear;
//修改订单数据库
query1.sql.Add('select * from train where trainNo=:trainNo and StaDate=:StaDate');
query1.ParamByName('trainNo').Asstring:=trainno;
query1.ParamByName('StaDate').AsDatetime:=strtodate(edit2.Text);
query1.Open;
if query1.RecNo=0 then
begin
application.MessageBox('此车次不存在! ','提示信息',mb_ok)
end
else begin
query1.Close;
query1.SQL.clear;
query1.sql.Add('delete from train where trainNo=:trainNo and StaDate=:StaDate'); //删除订单
query1.ParamByName('trainNo').Asstring:=trainno;
query1.ParamByName('StaDate').Asdatetime:=strtodate(edit2.Text);
query1.ExecSQL;
query1.close;
application.MessageBox('成功删除! ','提示信息',mb_ok) end;
edit1.Text:='';
edit2.Text:='';
end
query1.close改为query1.refresh;
2个Query,一个下载结果集,一个刷新!楼上说的可以
用query1来加载数据,一直打开,用query2来执行删除操作。
删除后刷新query1就可以了。
query1.ParamByName('trainNo').Asstring:=trainno;
query1.ParamByName('StaDate').Asdatetime:=strtodate(edit2.Text);
query1.ExecSQL;
query1.close; //这句是多余的加上下面几句
if DBGrid1.DataSource.DataSet.locate('trainNo;StaDate',VarArrayOf([trainno,StrToDateTime(Edit2.Text)]),[]) then
DBGrid1.DataSource.DataSet.Delete;