procedure TAForm.DelAccount(account: string);
begin
  with DataModule1 do
  begin
    AdoQuery1.SQL.clear;
    AdoQuery1.SQL.Add('delete from account_info where account =:account');
    AdoQuery1.parameters.ParamByname('account').value := account;
    AdoQuery1.ExecSQL;
    AdoQuery1.Free;
  end
end;

解决方案 »

  1.   

    procedure TAForm.DelAccount(account: string);
    begin
      with DataModule1.AdoQuery1 do
      begin
        Close;
        SQL.clear;
        SQL.Add('delete from account_info where account =:account');
        parameters.ParamByname('account').value := account;
        ExecSQL;
      end;
    end;
      

  2.   

    procedure TAForm.DelAccount(account: string);
    begin
      //首先判断DataModule1是否已经创建
      with DataModule1 do
      begin
        AdoQuery1.Close;
        AdoQuery1.SQL.clear;
        AdoQuery1.SQL.Add('delete from account_info where account =:account');
        AdoQuery1.parameters.ParamByname('account').DataType := ftFloat; //不知道你是什么类型 ftString等。
        AdoQuery1.parameters.ParamByname('account').value := account;
        AdoQuery1.ExecSQL;
    //    AdoQuery1.Free; //没必要释放,要不然下次使用就会出问题了
      end
    end;
      

  3.   

    如果你是显示在dbgrid之类的,最后要这样
        AdoQuery1.ExecSQL;
       AdoQuery1.DisableControl;
        AdoQuery1.Free;
      

  4.   

    addquery1如果不是动态创建的不用释放。
    因为你可能把它与某个datasource 相连,释放后可能会出错。