2011-12-30 156 views
1

我正在写一些python来与我有权访问的MSSQL服务器进行交互。我目前遇到的问题是我的一个Transact语句没有超过默认设置的超时时间(30秒)。SqlClient连接超时

我试图改变连接字符串中的命令超时值为0,以便这不会是一个问题,但被告知不支持命令超时关键字。

这里是我的连接字符串:

conn_string='data source=localhost;initial_catalog=research;trusted_connection=True;Connection Timeout=0;Command Timeout=0' 

这里是控制台消息使用此连接字符串时,我得到:

Value Error: Keyword not supported: 'command timeout' 

我试图命令超时与空间,没有空间,并且有/无大写字母,取决于我正在尝试解决此问题时正在阅读的任何支持线程。

有没有人在这里知道的方法来设置超时值超过30秒时更改连接字符串中的命令超时似乎并没有工作?

回答

1

指定连接或命令对象本身的命令超时,而不是连接字符串。查看this resource以获取ADO连接对象。

+0

环顾四周后,我想指定的唯一一件事就是SqlConnection对象指定为[这里](http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.aspx )没有一个CommandTimeout,因为我曾经认为它(和你的资源建议)。 我应该一直在SqlCommand对象指定[这里](http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.aspx) 感谢您设置我在正确的方向。 – Stodds 2011-12-31 00:11:50

1

此网站列出all options you can set in a connection string,但命令超时似乎不是其中之一。

如果您使用Windows上的Python和使用ADO,您可以设置命令超时连接对象上:

conn = Dispatch('ADODB.Connection') 
conn.ConnectionString = "Provider=SQLOLEDB.1;Data Source=localhost;" + \ 
    "uid=my_user_name;pwd=my_password;database=my_database_name" 
conn.Open() 
conn.CommandTimeout = 60 
1

或者,你可以做这样的事情:

import adodbapi 
adodbapi.connect(connectionString, 100) 

第二个参数是超时。