肯请各位高手指点迷津...拜托了!!!
在一个VC6开发的oracle客户端程序时,使用了CDatabase类. 通过ORACLE ODBC DRIVER 连接 ORACLE SERVER.  连接上以后,使用 CDatabase的ExecuteSQL语句执行一个需要运行时间较长的sql语句. 例如"create table xxx as select ... from .... where..."  但是每当运行时间超出一段时间后会 出现ORA-01013错误.. 但是有时确能够执行成功.按照ORACLE文档的解释,是由于用户中断了操作造成的.但是我没有进行任何中断它的操作.SEVER端也不可能中断它. 我查遍网上. 唯一的解释是 "操作超时".我又把 ORACLE客户端的设置和ODBC 驱动的设置仔细查了一遍. 超时值都被我扩大了10备,仍然 不解决问题.    各位高手,我被折磨了三天了... 请指点一下吧.谢谢!!!

解决方案 »

  1.   

    ORA-01013 user requested cancel of current operationCause: The user interrupted an Oracle operation by entering CTRL-C, Control-C, or another canceling operation. This forces the current operation to end. This is an informational message only. Action: Continue with the next operation. 
    --------------------------------------
    如果你没有强行中断的话,可能的原因还有
    1、你的网络很不好
    2、你的服务器中断了该连接,检查是否设置了connect_time
      

  2.   

    感谢大家!!!
        问题已经解决了。毛病出在MFC的cdatabase 类上。我的程序通过这个类调用oracle客户端的命名服务。虽然ORACLE ODBC DRIVER被我去掉了超时值,但是cdatabase类里有缺省的15秒超时设置。当运行费时超过该值的操作时会中断操作。造成ora-01013错误。解决办法是把CDATABASE的超时值用SETQUERYTIMEOUT函数设大一些即可。