首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

timeout时间设置无效解决方案

2012-03-29 
timeout时间设置无效我在用VBA连接MSSQL 2005的时候,代码如下,timeout 0标识为永不超时VB code连接数据

timeout时间设置无效
我在用VBA连接MSSQL 2005的时候,代码如下,timeout = 0标识为永不超时

VB code
'连接数据库Public Function GetConnection() As ADODB.Connection    Dim con As ADODB.Connection 'ADO连接    Set con = New ADODB.Connection    con.ConnectionString = "Provider=SQLOLEDB;Server=lws-db;Initial Catalog=PL2010_back;User Id=pl;PASSWORD=pluser;timeout= 0"    Set GetConnection = conEnd Function

但是我做了一个测试,用此连接来连接一个存储过程,当我在存储过程中使用
SQL code
waitfor delay '00:00:31'--等待31秒

时,前台显示超时,但在存储过程中使用
SQL code
waitfor delay '00:00:30'--等待30秒

时,不超时。30秒应该是连接的默认最大时间,从效果上看,我将timeout = 0设置为永不超时是无效的。
这是为什么呢?

[解决办法]
XML code
timeout =60
[解决办法]
SQL code
--手动设置查询超时,可以使用以下语句:      sp_configure  'show  advanced  options',  1      GO      RECONFIGURE      GO      sp_configure  'query  wait',  2147483647      GO      RECONFIGURE      GO
[解决办法]
探讨
引用:
XML code
timeout =60

无论将timeout设置成多少都没有用,设置为15数据也可以查询出来,貌似此连接只认默认值。
是不是在数据库方面还应该有什么设置呢?

[解决办法]
SqlCommand.CommandTimeout
获取或设置在终止执行命令的尝试并生成错误之前的等待时间。
等待命令执行的时间(以秒为单位)。默认为 30 秒。
SqlConnection.ConnectionTimeout
获取在尝试建立连接时终止尝试并生成错误之前所等待的时间。
等待连接打开的时间(以秒为单位)。默认值为 15 秒。
[解决办法]
程序里面
VB code
Set Conn = Server.CreateObject("ADODB.Connection")DSNtest="DRIVER={SQL Server};SERVER=ServerName;UID=USER;PWD=password;DATABASE=mydatabase"Conn. Properties("Connect Timeout") = 15 '以秒为单位Conn.open DSNtest 

热点排行