MS SQL + Python(IronPython)超时
我正在用Python查询MS SQL,使用的代码来自这个网站:http://www.ironpython.info/index.php/Accessing_SQL_Server:
import clr
clr.AddReference('System.Data')
from System.Data import *
TheConnection = SqlClient.SqlConnection
("server=yourserver;database=News;uid=sa;password=password;timeout=0")
TheConnection.Open()
MyAction = SqlClient.SqlCommand("Select Headline from News", TheConnection)
MyReader = MyAction.ExecuteReader()
while MyReader.Read():
print MyReader[0]
MyReader.Close()
TheConnection.Close()
我刚加了timeout=0
,但还是遇到了:
EnvironmentError: System.Data.SqlClient.SqlException (0x80131904): Timeout
expired. The timeout period elapsed prior to completion of the operation
or the server is not responding.
我试着把timeout
设置成1000000
,但还是出现了同样的错误。
如果我在同一台机器上用MSSQL客户端运行相同的SQL语句,那就完全没问题。你知道怎么避免这个超时的错误吗?
1 个回答
1
试着增加SqlCommand中的CommandTimeout属性,具体可以参考这里的说明:https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.commandtimeout(v=vs.110).aspx
连接字符串中的超时值只控制与数据库初始连接的超时时间。如果你的SQL查询执行时间很长,这个设置就没什么用,所以你需要使用CommandTimeout来解决这个问题。