把adoQuery1.SQL.Add('select cardid,name from member where cardid=:x');

解决方案 »

  1.   

    把adoQuery1.SQL.Add('select cardid,name from member where cardid='+quotedstr(x);
    如果找你那样写得话
     如果EDIT框中输入得是数字就可以,如果是字就不行。
      

  2.   

    procedure TForm1.Button3Click(Sender: TObject);
    begin
    adoquery1.Close;
    adoquery1.SQL.Clear;
    adoQuery1.SQL.Add('select cardid,name from member where cardid=:a1');
    adoquery1.parameters[1].value:=trim(edit1.text);
    adoquery1.open;
    if adoquery1.recordcount<1 then
    begin
    showmessage('当前记录不存在');
    edit1.Clear;
    end;end;
      

  3.   

    procedure TForm1.Button3Click(Sender: TObject);
    var
    x:string;
    begin
    adoquery1.Close;
    adoquery1.SQL.Clear;
    x:=edit1.text;
    adoQuery1.SQL.Add('select cardid,name from member where cardid=');
    adoquery1.sql.add(x);
    adoquery1.Active:=true;
    adoquery1.open;
    if adoquery1.Eof then  //这有点错误  if adoquery1.recordcount<1 thenbegin
    showmessage('当前记录不存在');
    edit1.Clear;
    end;end;
      

  4.   

    在adoquery1.open;之后,加一条语句:
    adoquery1.first;试一试,我经常这样做得。
      

  5.   

    procedure TForm1.Button3Click(Sender: TObject);
    var
    x:string;
    begin
    adoquery1.Close;
    adoquery1.SQL.Clear;
    x:=edit1.text;
    adoQuery1.SQL.Add('select cardid,name from member where cardid=');
    adoquery1.sql.add(x);
    adoquery1.Active:=true;
    adoquery1.open;
    try
        adoquery1.Last;//在进行这两不操作之前就是有记录Recordcount也是0
        adoquery1.first;
    except
        adoquery1.close;
    end;
    if (adoquery1.recordcount<=0) or (adoquery1.Eof) then//同时判断recordcount
    begin
    showmessage('当前记录不存在');
    edit1.Clear;
    end;end;
      

  6.   

    同志们用recodcount会降低性能啊!
    还是select count(*)比较好...
      

  7.   

    procedure TForm1.Button3Click(Sender: TObject);
    var
    x:string;
    begin
    adoquery1.Close;
    adoquery1.SQL.Clear;
    x:=edit1.text;
    //adoQuery1.SQL.Add('select cardid,name from member where cardid=');
    //adoquery1.sql.add(x);  这两句有问题
    adoQuery1.SQL.Add('select cardid,name from member where cardid="'+x+'"');//adoquery1.Active:=true; 这句可以不要
    adoquery1.open;
    //if adoquery1.Eof then  这句有问题
    if adoquery1.IsEmpty then
    begin
    showmessage('当前记录不存在');
    edit1.Clear;
    end;end;
      

  8.   

    以上几位谈的方法都可以实现楼主那个问题,我认为最大的可能性是ADO升级包没有安装的原因