buttonclick事件
var
 id:string;
begin
id:='2002';
with adoquery do
  close;
  sql.text:='select * from user where id='''+id+'''';
  open;
end;如果表中没有纪录,点击两下时会出现错误,怎麽回事。为何出错!
同一个值
第一下点击按钮时dbgrid会显示为空,但是
第二下时会出错

解决方案 »

  1.   

    //IF user::id is integer
    var
     ID:string;
    begin
      ID := '2002';
      with ADOQuery do
        DisableControls;
        Close;
        SQL.Clear;
        SQL.Add(' SELECT * FROM user WHERE id = ' + ID);
        Open;
        EnableControls;
    end;
      

  2.   

    //IF user::id is STRING
    var
     ID:string;
    begin
      ID := '2002';
      with ADOQuery do
        DisableControls;
        Close;
        SQL.Clear;
        SQL.Add(' SELECT * FROM user WHERE id = ' + '''' + ID + '''');
        Open;
        EnableControls;
    end;
      

  3.   

    http://www.csdn.net/expert/topic/795/795315.xml?temp=.8291742
    数据库同步的巨难问题,谁解决了100分奉送,我还管他叫阿爹!!
      

  4.   

    贴出报错信息,我想可能是ADO的BUG,
    你用的是D5还是D6
      

  5.   

    改成如下,应该不会有错:
    buttonclick事件
    var
     id:string;
    begin
    id:='2002';
    with adoquery do
      recordset.close;        //增加这句后,应该不会有错了。
      close;
      sql.text:='select * from user where id='''+id+'''';
      open;
    end;如果表中没有纪录,点击两下时会出现错误,怎麽回事。为何出错!
    同一个值
    第一下点击按钮时dbgrid会显示为空,但是
    第二下时会出错
      

  6.   

    你多半用的是D5了,呵呵,下个ADO的补丁
      

  7.   

    通常的写法
    with ADOQuery do
    begin
     Close;
     SQL.clear;
     SQL.Text:=s_Sql;
     OPen;
    end;