我用adoquery做了个简单的查询,在open后,得出的查询结果是0时,我用adoquery.close时就会报错。请赐教?

解决方案 »

  1.   

    with adoquery1 do
      begin
        close;
        sql.clear;
        sql.add('select * from t_yhpz where ipaddress = '''+'ss'+'''');
        open;
        close;
      end;
      

  2.   

    用delphi 5?
    空Dataset在close时有问题。
      

  3.   


        open;改为EXECSQL
      

  4.   

    sql.add('select * from t_yhpz where ipaddress = '''+'ss'+''''); 的'错了,

    sql.add('select * from t_yhpz where ipaddress = '+'ss');
     
      

  5.   

    这是Delphi与ADO之间的一个BUG
    安装ADO补丁包即可解决。
      

  6.   

    用的delphi5,我还需要返回recordcount,必须用open
      

  7.   

    假如是记录为空为错,你就判断是否为空
    if not adoqr.eof then adoqr.close;
      

  8.   

    代码没有问题啊!可能是返回集的问题,
    1 安装补丁
    2 如果只需要记录数,用select count(*)就行了阿,不需要把表的记录数据全部得出
      

  9.   

    就算是空的也能关啊
    可能是没有打补丁,如果你用的是delphi5
      

  10.   

    试试
    with adoquery1 do
      begin
        Active:=False;
        sql.clear;
        sql.add('select * from t_yhpz where ipaddress = '''+'ss'+'''');
        open;
        Active:=False;
      end;
      

  11.   

    sql.add('select * from t_yhpz where ipaddress = '''+'ss'+'''');
    错了.
    这样写试试
    sql.add('select * from t_yhpz where ipaddress = '''+ss+'''');
      

  12.   

    adoquery1.close;
    adoquery1.sql.add('select * from table1');
    adoquery1.open;if not adoquery1.locate(fields,'要查找的內容',[]) then
       showmessage('沒有找到!')