【发布时间】:2013-07-25 11:46:31
【问题描述】:
我有一个旧版应用程序 (VB),在连接到 SQL Server(可能通过 OLEDB)时遇到超时错误问题。
使用 SQL Profiler,我发现连接在 30 秒后就断开了。
我无权访问源代码,但我扫描了 exe 资源,但在那里找不到任何硬编码的连接字符串超时值。
我认为我最后的机会是在应用程序之外的某个地方更改默认的 OLEDB 超时。
我的问题是:可以更改默认的 OLEDB 超时值吗?
更新
我找到了连接字符串并将超时更改为 300,但它没有帮助...
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=______;Password=______;Initial Catalog=________;Data Source=______;Connect Timeout=300
之后,我尝试用来自不同提供商的连接字符串替换当前连接字符串:ADO.NET 和 ODBC 但每次我在 30 秒后收到超时错误 -将死。
附言
我很乐意接受任何建议
【问题讨论】:
-
有多种方法可以使用 ADO 设置超时,但我认为 30 秒是默认值,因此程序可能根本没有设置超时。在这种情况下,我看不出您如何在已编译的程序中更改它,抱歉... :(
-
但我相信这个默认的 30 秒值必须在系统的某个地方“硬编码”(驱动程序设置、注册表、全局配置文件或其他...)
-
如果是连接超时,它显示在分析器中是不是很奇怪?可能是 c 命令超时还是连接后身份验证超时?
-
当从应用程序执行的查询运行时间超过 30 秒时,连接断开。有时查询执行不到 30 秒并且不会发生超时,但更常见的是,可能每 1 次 10 次,查询执行超过 30 秒并且应用程序抛出超时异常
标签: sql-server vba oledb connection-timeout