VB6用户请求取消当前操作Oracle错误

VB6用户请求取消当前操作Oracle错误,oracle,vb6,Oracle,Vb6,我目前正在对一个VB6应用程序进行故障排除,该应用程序偶尔会出现以下错误: [Oracle][ODBC][Ora]Ora-01013:用户请求取消当前操作 我对这个错误所做的所有研究都表明,它要么是用户的实际取消请求,要么是超时。它不能是取消请求,因为输入来自自动源,所以它必须是超时。我在网上读到的一件事是取消选中DSN配置框中的查询超时复选框,但我的程序使用到数据库的无DSN连接,这是一个Oracle 10g数据库 在这个程序中有几个查询,但它总是在一个查询上失败,特别是在一个查询上,但是我不

我目前正在对一个VB6应用程序进行故障排除,该应用程序偶尔会出现以下错误: [Oracle][ODBC][Ora]Ora-01013:用户请求取消当前操作

我对这个错误所做的所有研究都表明,它要么是用户的实际取消请求,要么是超时。它不能是取消请求,因为输入来自自动源,所以它必须是超时。我在网上读到的一件事是取消选中DSN配置框中的查询超时复选框,但我的程序使用到数据库的无DSN连接,这是一个Oracle 10g数据库

在这个程序中有几个查询,但它总是在一个查询上失败,特别是在一个查询上,但是我不能在测试环境中使用导致错误的所有相同的程序输入来重现错误


我的一位同事建议在每次查询后进行回滚,即使查询是只读的,因为某种缓冲区可能会被填满或类似的东西,但这不起作用。在这一点上,我甚至不知道如何继续排除故障,因为我无法重现错误。如果有人能告诉我发生了什么以及如何解决这个问题,我将不胜感激。提前谢谢

如果使用的是无DSN连接,则可以在连接字符串中指定设置DSN时可以选择的所有选项。如果要禁用查询超时,可以添加

QTO=F
连接到连接字符串。因此,您的新连接字符串类似于

DRIVER={Oracle ODBC Driver};UID=Kotzwinkle;PWD=whatever;DBQ=instl_alias;QTO=F;

您使用的是什么连接字符串?您是否能够发布导致问题的代码?感谢您的建议,我将尝试实现它。不过,有一个问题是,随着查询超时被关闭,我现在不必担心查询挂起吗?@BrendonDavies-如果您的应用程序允许用户发出特殊的SQL语句,是的,您需要担心人们生成失控的查询。有许多方法可以在后端减轻影响——例如,资源管理器,或者简单地提醒DBA终止特别长时间运行的会话。但是,如果这是您正在构建的应用程序,那么您大概可以设计和构建该应用程序以防止查询挂起。这是一个全天候运行的应用程序,我们可以在白天或晚上的任何时间从其他公司获得该程序处理的“事务”。我刚刚检查并关闭了查询超时,结果导致程序挂起了一堆实例。任务管理器显示了50多个程序名称相同的挂起进程,因此我认为在我的情况下关闭查询超时选项是不可行的。还有其他建议吗?@BrendonDavies-如果您得到的事务定期生成SQL语句的运行时间比您想要的长,那么两个选项是允许这些事务继续运行(可能最终在后端终止它们),或者使用查询超时从前端终止它们。听起来你是说周期性“ORA-01013”错误的当前行为比让这些查询运行要好。如果是这样,那么就没有问题要解决。找出会话被“挂起”的原因并修复应用程序似乎也是合理的。