用delphi7的Tadoquery控件连oracle 9i 数据库,用一个Tadoquery控件连续 查询(执行一个sql语句后立即关闭),大概查询4-5次就会出现“对象被打开”的错,是一个EOleException 的错,但是如果每次查询都动态创建一个Tadoquery对象,查询完释放,则不出错,问这是怎么回事,谢谢各位高手

解决方案 »

  1.   

    把代码贴出来看一下,应该没有问题。
    adoquery := TAdoquery.create(nil);
    try
      with adoquery do
      begin
        close;
        sql.text := '';
        open;//execsql
      end;
    finally
      adoquery.free;
    end;
      

  2.   

    to zxf_feng(阿日):这样写是不会出错的,我说的是在一个窗体上放一个Tadoquery控件,在很多场合都用它,而不是动态创建,我动态创建的Tadoquery控件也没问题
      

  3.   

    代码太多了,没发贴,Tadoquery控件是放在form 上的,不手工释放,只是关闭而已
      

  4.   

    你仔细检查一下你的程序吧,肯定哪里有问题,我一直将query入在一个公共的datamodule中,
    最好不要直接入在窗体上。
      

  5.   

    窗体是不是采用的MDI,如果是这样就有可能冲突