vba - ADODB查询超时

标签 vba ms-access adodb

我正在尝试打开一个查询,但该查询超时。我尝试过设置超时属性,但它似乎不想接受它。

使用 MS-SQL Server 管理窗口 (SQL Server 2005) 执行查询需要 34 秒,因此我知道需要增加超时。

当前代码:

Public Function retRecordSet(StrSQL)
Dim cmd ' as new ADODB.Command
Dim rs 'As New ADODB.Recordset

Set cmd = CreateObject("ADODB.Command")
Set rs = CreateObject("ADODB.Recordset")

cmd.ActiveConnection = CurrentProject.Connection
cmd.CommandText = StrSQL
cmd.CommandTimeout = 0
Set rs = cmd.Execute

Set retRecordSet = rs
End Function

我还尝试设置连接本身的超时 CurrentProject.Connection.CommandTimeout = 120,但如果我在该命令之后立即查询该值,它仍为 30

连接属性:

Provider=Microsoft.Access.OLEDB.10.0;Persist Security Info=False;Data Source=MyServer;Integrated Security=SSPI;Initial Catalog=MyDatabase;Data Provider=SQLOLEDB.1

Data Source Object Threading Model = 1
Multiple Results = 3
Multiple Parameter Sets = False
SQL Support = 283
Catalog Location = 1
Catalog Term = database
Catalog Usage = 15
Rowset Conversions on Command = True
Extended Properties = 
Cache Authentication = True
Encrypt Password = 
Persist Encrypted = 
Persist Security Info = False
Asynchronous Processing = 0
Connect Timeout = 600
Protection Level = 
Prompt = 4
Mode = 
Location = 
Locale Identifier = 1033
Impersonation Level = 
Window Handle = 
Data Source = MyServer
User ID = 
Password = 
Integrated Security = SSPI
Mask Password = 
Initial Catalog = MyDatabase
Lock Owner = 
Bind Flags = 
General Timeout = 0
Data Provider = SQLOLEDB.1
Autocommit Isolation Levels = 4096
Unique Reshape Names = False

最佳答案

不确定您是否已经解决了这个问题,但我也遇到了同样的问题。 我正在使用 Recordset.Open SQL_String, Connection 来完成此操作。

在此之前,我只是在 Connection 对象上而不是在 Recordset 或 Command 上设置超时属性:

Connection.CommandTimeout = 0

关于vba - ADODB查询超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17574524/

相关文章:

ms-access - 使用 ADODB 和 VB6 无法从 MEMO 字段读取超过 255 个字符

excel - Access VBA - XLS 后期绑定(bind),未找到变量

php - 在另一个类中使用包含的类

ms-access - MS Access 中的奇怪行为

ms-access - 使用 VBA 使用 WCF Web 服务,如何更改绑定(bind)?

vba - 无法在 Excel VBA 中添加两个数字

sql - 传递给 ADODB 的查询长度是否有限制?

ms-access - 使用网页浏览器控件 Access vba显示本地PDF文件

vba - 如何遍历表单中的所有控件,包括子表单中的控件-Access 2007

database - 是否可以从 Windows Mobile App 连接到服务器数据库