if Application.Messagebox('确认要删除吗?', '系统提示你',     MB_OKCancel+MB_ICONInformation)=idok then
  begin
   try
     With DM.Query_BaseInfo  Do
       Begin
        Close;
        SQL.Clear;
        SQL.Add('Delete From BaseInfo Where Gtin=:Gtin_name');
        ParamByName('Gtin_Name').AsString:=edit1.Text ;
        Prepare;
        ExecSQL;
        Application.Messagebox('删除数据信息成功', '系统提示你', MB_OK+MB_ICONERROR);
       // Exit;
      End;
   except On E:Exception Do
     Begin
        Application.Messagebox('删除数据信息失败', '系统提示你', MB_OK+MB_ICONERROR);
        Exit;
     End;
   end;
end
else
  begin
    Abort;
  end;
功能是可以实现(数据可以被删除,可是表却被关闭后打不开了,所以就会出现异常情况。

解决方案 »

  1.   

    Query_BaseInfo 还用来显示数据了吧?
      

  2.   

    DM.Query_BaseInfo是什么对象?你先在SQL.Clear前输出DM.Query_BaseInfo.试一下能不能找到SQL.Clear方法,我想可能找不到,问题可能就出在这里吧!DM.Query_BaseInfo这个地方用一个TQuery对象试试,应当是没问题的。先试了再说。
      

  3.   

    soaringsouth(栈桥捉鳖)仁兄:
           你说的对,我是用它来显示数据,依你的办法怎么说呢, 
     JoeSong(蓝血人)仁兄:
         是不是要
               Query_Base:TQuery;
               Query_base:TQuery.Create(self);
               Query_base.DatabaseName:='';
               Query_base.clear;
                Query_base.sql.clear;
                Query_base.sql.add();
                然后就执行以下的程序,是吗?
      

  4.   

    Query_Base:TQuery;
    Query_base := TQuery.Create(self);
    Query_base.DatabaseName:='';
    Query_base.close;   //这里是Close
    Query_base.sql.clear;
    Query_base.sql.add();