procedure TForm1.N1Click(Sender: TObject);
var
k:integer;
begin
  with form1.ADOQuery7 do
  begin
    Connection := form1.ADOConnection1;
    if Active then
      Active := False;
    SQL.Clear;
    SQL.Add('delete From [emlinfo]');
   try
      Open;
    except
     end;//运行到这就提示错误
        for k := 0 to DBGridEh1.Columns.Count - 1 do
    begin
      DBGridEh1.Columns[k].Width := Round(DBGridEh1.Width / DBGridEh1.Columns.Count);
      DBGridEh1.Columns[k].Title.TitleButton := True;
    end;
  end;
end;
提示:commandtext  does  not return  a  result  set
究竟是哪里的问题呢?

解决方案 »

  1.   

    'delete From [emlinfo]'的sql语句不能使用open,要使用ExecSQL
      

  2.   

    procedure TForm1.N1Click(Sender: TObject); 
    var 
    k:integer; 
    begin 
      with form1.ADOQuery7 do 
      begin 
        Connection := form1.ADOConnection1; 
        if Active then 
          Active := False; 
        SQL.Clear; 
        SQL.Add('delete From [emlinfo]'); 
      try 
          //Open;   这条记录不要?
        except 
        end;//运行到这就提示错误 
            for k := 0 to DBGridEh1.Columns.Count - 1 do 
        begin 
          DBGridEh1.Columns[k].Width := Round(DBGridEh1.Width / DBGridEh1.Columns.Count); 
          DBGridEh1.Columns[k].Title.TitleButton := True; 
        end; 
      end; 
    end; 
    老大今天看你开的庄去了很多分吧
      

  3.   

    Open改成ExecSQL
    Open是打开数据集,你用delete,不返回数据集,所以不能用
    除非select 语句。