去掉prepared, 你这个地方不需要用prepared的,或者用了以后
用unprepared.
  data.ADOchildtree.active:=false;
  data.ADOchildtree.SQL.clear;
  data.ADOchildtree.SQL.Add('select * from userpass where fname=:fname');
  data.ADOchildtree.Parameters.ParamByName('fname').value:=fname;
  data.ADOchildtree.Active:=true;

解决方案 »

  1.   

    data.ADOchildtree.SQL.Create ?
    写错了吧?
      

  2.   

    TO: szdino(阿飞) 
      我试过你的办法了,还是报错,与原来一样的,
    与 prepared这个方法没什么关系
      

  3.   

    TO:mrwyf(流星飞)
      确实写错了,应该是:DATA.adochildtree.sql.clear;
    但是改过之后仍然是原来的错误,
      

  4.   

    q1: TADOQuery;
    然后  q1.close;
      q1.SQL.clear;
      q1.sql.Add('select * from country where name=:test');
      q1.Parameters.ParamByName('test').Value:='Brazil1';
      q1.open;我试验过了,用的是delphi带的测试mdb 没问题的。
    adochildtree是tadoquery么?
      

  5.   

    TO: szdino(阿飞) 
     adochildtree是Tadoquery我的程序如果每次查询不为空的话则不会报错
    如果有一次查询结果为空,则第二次调用时在 close一句报错
      

  6.   

    procedure from.query(fname:string);
    begin
      data.ADOchildtree.Close;
      data.ADOchildtree.SQL.Create;
      data.ADOchildtree.SQL.Add('select * from userpass where fname=:fname');
      data.ADOchildtree.Parameters.ParamByName('fname').value:=fname;
      data.ADOchildtree.Prepared;
      data.ADOchildtree.Open;
      if data.ADOchildtree.recordcount=0 then exit;//加这句试试
    end;
      

  7.   

    TO:thisisxutao(Probational 1.0) (  ) 信誉
    试了你的方法,不行;
    TO:ll7777(阿皓) (  ) 
    请问是什么补丁?在那里有下载?TO: hamzsy(十二真空间) 
    错误信息:Either Bof or Eof is true,or the current record has been deleted, Requested operdation requires a current record
      

  8.   

    TO: czp(万非) 兄
      调用该函数的代码应该没有错,因为如果查询结果不为空的话就执行很正常的,我估计可能是因为Tadoquery查询返回为空的情况下需要调用一个什么方法将Tadoquery复位,否则就会报错,