回 帖 发 新 帖 刷新版面

主题:删除问题请教

本人想把数据库中的耗材领取表的所有记录清空,编写了如下代码:
procedure Tclear.BitBtn1Click(Sender: TObject);
begin
  if Application.MessageBox('确实要删除全部记录?','提示',mb_YesNo)=ID_Yes  then
  begin
  with ADOQuery1 do
  begin
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select * from  耗材领取表');
  Adoquery1.Delete;
  end;
  end;
 end;
确总是出错,显示Adoquery1:cannot perform this openration on a closed dataset
我改了几个设置但还是出错,
请问各位高手如果要清除数据库中一个表的全部记录要如何编写代码啊?

回复列表 (共3个回复)

沙发

换成这种试试,由于Access表本身不支持多行删除,另想方法,你可以用循环方法:
procedure TForm1.Button3Click(Sender: TObject);
begin
 if Application.MessageBox('确实要删除全部记录?','提示',mb_YesNo)=ID_Yes  then
  begin
  with ADOQuery1 do
  begin
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select * FROM 表名');
  Adoquery1.Open;
  Adoquery1.Delete;
  end;
  end;
end;

板凳

但是这样只能一行一行的清除,不能实现一点按钮所有的记录就全部清空的效果,我的数据库用的不是Access是sqlsever。
还请再指点一.

3 楼

这样试试:ADOQuery1.SQL.Add('Delete FROM 表名');

我来回复

您尚未登录,请登录后再回复。点此登录或注册