我有一个存储过程,它因“超时已过期”而出错。
涉及的代码是ADO/VB6。
存储过程本身没有问题,您可以在查询窗口中运行它,只需不到一秒钟。
用于获取连接等的代码也是模块化的,并在整个巨大的应用程序中使用。超时仅在这个地方发生,在一个特定的数据库上。
无论是否在调试中运行 VB6 代码,每次尝试都会重现该错误,然后突然间一切都会神奇地重新开始工作。然后在未来的某个时间,同样的问题会再次出现。
我不确定要放多少代码,没有什么复杂的;基本上是;
Set adoCommandObject.ActiveConnection = ...{open ADODB.Connection object}
Set rs = CreateObject("ADODB.Recordset")
Call rs.Open(adoCommandObject, , adOpenForwardOnly, adLockReadOnly)'Timeout occurs here
我一直在观察分析器,但没有给出任何线索,除了偶尔看到在 sp 运行之前和之后发生的“SET NO_BROWSETABLE ON”/“SET NO_BROWSETABLE OFF”语句。
我已经在网上搜索过,但找不到任何令人满意的帮助;在这一点上,我愿意尝试任何事情(除了在 .NET 中重写,不幸的是,这不是一个选项!)