SqlClient 连接超时
我正在写一些Python代码,想和我能访问的MSSQL服务器进行交互。目前我遇到的问题是,我的一个事务语句在默认的超时时间(30秒)内没有执行完。
我尝试在连接字符串中把命令超时设置为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秒呢?
3 个回答
1
这个网站列出了在连接字符串中可以设置的所有选项,不过命令超时似乎不在其中。
如果你在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
2
另外,你可以这样做:
import adodbapi
adodbapi.connect(connectionString, 100)
第二个参数是超时时间。
1
你需要在连接对象或命令对象上设置命令超时时间,而不是在连接的字符串中设置。想了解更多关于ADO连接对象的信息,可以查看这个资源。