如题
  
     1 我在父进程中创建了一个DB连接connection *pconn = new Oraclenecction()     2 然后传给子进程使用,
         PrepareStatement  *pre = pconn->preparestate("查询语句");
         子进程执行结束后 delete pre,  exit(0); 
    
     3 返回父进程,(连接未释放)
但为何在子进程delete pre时,父进程的连接也同时被断开了?

解决方案 »

  1.   

    我子进程没有中断这个连接啊,只是delete了PrepareStatement ,  对这个不是很了解,还请多讲解几句啊,
      

  2.   

    我记得 delete之 使数据库连接关闭 的,很久没有碰C++了,你去C++版本问问看
      

  3.   

    to  java3344520   应该不是这个问题,若不使用子进程的话,delete 了preparestatement,不会断开连接。  应该是子进程的问题。
      

  4.   

    修改了一下,
        现在的情况是,子进程delete了游标,父进程的连接保持了,但游标却没有释放成功,在DB中还是一直保持着。   请高手帮忙解决啊,急。
      

  5.   

    select count(*) from v$open_cursor where sql_text like '%我所使用的查询语句%',这个一直在增加,没有减少。
      

  6.   

    是一样的,只一条查询语句。sid一致,sql_text一致。
    有人说,//EXEC   ORACLE   OPTION(RELEASE_CURSOR=YES);   /*加上这个就解决了,自动释放游标*/ 但不知怎么加。还有说,是子进程没‘收尸’(不是指exit(0),我用kill()也不能解决)。但不知是啥意思。