我想在程序中动态添加记录,写了如下程序,可以把记录添加上去,但紧接着就提示如下错误:Project Project1.exe raise exception class EDatabaseError with message 'ADOQuery1:CommandText does not return a result set'.Process stopped.Use Step or Run to continue。请请教,哪里出了问题?
procedure TForm1.Button2Click(Sender: TObject);
var
  strsql:string;
begin
  strsql:='Insert into phone(Person,Num) Values('+chr(39)+edit1.text
          +chr(39)+','+chr(39)+edit2.text+chr(39)+')';
  with ADOQuery1 do
    begin
      close;
      sql.Clear;
      sql.Add(strsql);
      open;
    end;
end;

解决方案 »

  1.   

    诸如“插入”、“更新”的操作用ExecSQL。
    要返回一个数据集(用select ....from...where...)语句的时候,用OPEN。
      

  2.   

    var
      strsql:string;
    begin
      strsql:='Insert into phone(Person,Num) Values(:xPerson,:xNum)';
      with ADOQuery1 do
        begin
          close;
          sql.Clear;
          sql.Add(strsql);
          parameters[0].value:=Edit1.text;
          Parameters[1].value:=Edit2.Text;
          ExecSQL;
        end;
    end;