不会吧,这也会错,重装Delphi吧,呵呵Good Luck三少

解决方案 »

  1.   

    是不是在此之前QryTemp已经释放了?换一个名试试
      

  2.   

    你先重启一下;
    再者,你的程序里还有其它的QUERY吗?
    再新加一个,试一试;
      

  3.   

    query的名字书写错误,哈哈,一定是!!!
      

  4.   

    用BED还是ADO的?
    前面的数据库连接出错了吧!
      

  5.   

    用参数查询是最好用:
       parambyName('cID').value := cardno;
    你改一下试一试?
      

  6.   

    楼上的朋友,不需要这样吧,只要把参数的类型事先设置好就可以了,我不推荐用.value调用值。
    呵呵,好像我有点文不对题啊!
      

  7.   

    那就别Clear了,就直接TQuery.SQL.Text:=' …… '吧。
      

  8.   

    不应该是clear出的错,而是close出错的可能性大些。原因只有你知道了。
    你换成sql.text:=...;还会报告sql.text:=...;有错的。
      

  9.   

    你的程序里还有其它的QUERY吗?
    再新加一个,试一试
      

  10.   

    请检查G_dm.QryTemp是否正确。
    如果正确的话,则检查它所连接的数据库的表或字段是否修改过了?或者QryTemp的静态字段是否和table的字段相符合。
      

  11.   

    我曾遇到一个很相似的问题。
    当adoquery的记录集为空时,不允许执行close方法。例:
    with adoquery1 do
      close;
      sql.clear;
      add('select * from a where 2=1')
    end;
    这段代码执行第一遍没问题,但接着再执行时close方法会出错,原因我不知道。布置你遇到的是不是同样的问题。
      

  12.   

    eagle123(孤独的鹰) :我的问题正是像你所说一样,你解决了吗?
    真得很奇怪!
      

  13.   

    apusic(大象):with G_dm.QryTemp do 中  G_dm.QryTemp 是什么呀,是TQuery吗?
      

  14.   

    你用ado来连接数据库是吧?
    delphi中的ado本身是有bug的。你程序中的问题
    就是一个bug。去找个地方下载一个ado的补丁吧。
    已经很多人遇到这样的问题了。
      

  15.   

    if not Assigned(G_dm) then begin
      ShowMessage('资源没有分配,真是不好玩');
      Exit;
    end;      with G_dm.QryTemp do
          begin
            close; //其实是这句出错!
            sql.Clear; ===>运行到此时出错。
            sql.Add('select c_Name, N_SerPay from serviceItems ');
            sql.Add('where c_ID=:cID');
            prepare;
            parambyName('cID').asstring := cardno;
            open;
      

  16.   

    系统的问题 与delphi 无关