ORA-01013: user requested cancel of current operation

1.前言

  最近在用VC6开发的程序通过ODBC访问Oracle 9i数据库时,经常会报“ORA-01013: user requested cancel of current operation”错误。

进行UPDATE和INSERT操作时都有可能发生,而且不限于某一个数据表。

2.解决办法

  在网上查了一下资料,总结出解决办法:

  1.修改 $ORACLE_HOME/NETWORK/ADMIN/sqlnet.ora,添加或修改成:SQLNET.EXPIRE_TIME = 0
    这将关闭Oracle的连接状态检测。

  2.在ODBC管理中去掉 'Enable Query Timeout'复选框。如图1所示:

 

                    图1

  3.在程序中的连接数据库的字符串中添加
    QTO=F,成为这样的连接字符串:“;DSN=DB;UID=a;PWD=b;QTO=F”。

  4。在Connection对象上设置SetQueryTimeout(0)。

    app->m_pDatabase->SetQueryTimeout(0);

3.总结

  经过一个星期的测试,证明这个办法确实好用。原来每天都会报这个错误,现在程序已经不间断运行了7天,一个这样的错误都没报。

posted on 2012-11-09 09:53  onedime  阅读(16385)  评论(0编辑  收藏  举报