首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ADODB查询超时

ADODB查询超时
EN

Stack Overflow用户
提问于 2013-07-10 15:19:07
回答 3查看 94.1K关注 0票数 20

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

使用管理窗口( Server 2005)执行查询需要34秒钟,所以我知道我需要增加超时时间。

当前代码:

代码语言:javascript
复制
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

代码语言:javascript
复制
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
EN

回答 3

Stack Overflow用户

发布于 2014-04-30 07:30:52

不知道你是否已经解决了这个问题,但我也有同样的问题。我是用Recordset.Open SQL_String连接的。

在此之前,我只设置了timeout属性,不是在记录集或命令上,而是在Connection对象上:

代码语言:javascript
复制
Connection.CommandTimeout = 0
票数 32
EN

Stack Overflow用户

发布于 2018-06-28 07:19:09

来自http://codingjourney.blogspot.com/2008/11/ado-connection-timeout-command-or.html

解决方案 还必须在正在使用的commandTimeoutADODB.Recordset上设置ADODB.Command属性。否则,这些对象将使用30秒的默认时间限制,因为它们不会从关联的ADODB.Connection实例继承时间限制。 在ASP 3中使用VBScript的示例: set con = createObject("ADODB.Connection") con.open connectionString con.commandTimeout = 60 set con.commandTimeout= createObject("ADODB.Command") command.activeConnection =concommand.commandType= adCmdText command.commandText = sql command.commandTimeout = 60 command.execute response.write command.commandTimeout‘现在是60秒。

票数 16
EN

Stack Overflow用户

发布于 2013-07-11 08:20:35

对于OLEDB,不需要指定连接的超时时间:-

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17574524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档