MS SQL + Python (IronPython) 超时

发布于 2024-09-06 16:36:32 字数 997 浏览 5 评论 0原文

我正在使用 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,那就完全没问题。你知道如何避免这种超时异常吗?

I'm querying MS SQL using python using the source code from 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()

I just added timeout=0, but still I got :

EnvironmentError: System.Data.SqlClient.SqlException (0x80131904): Timeout 
expired.  The timeout period elapsed prior to completion of the operation 
or the server is not responding.

I tried it with timeout=1000000, but still got the same error.

If I run the same SQL in the same machine using the MSSQL Client, it's totally fine. Do you know how to avoid this timeout exception?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

下壹個目標 2024-09-13 16:36:32

尝试增加 SqlCommand 上的 CommandTimeout 属性,如下所述:
https:// msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.commandtimeout(v=vs.110).aspx

连接字符串中的超时值仅控制初始连接的超时时间。数据库。如果您的 SQL 查询需要很长时间才能执行,那么这将无济于事,因此您需要使用 CommandTimeout。

Try increasing the CommandTimeout property on the SqlCommand as described here:
https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.commandtimeout(v=vs.110).aspx

The timeout value in the connection string only controls the timeout for the initial connection to the database. That will not help if your SQL query takes a long time to execute so you need to use CommandTimeout instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文