Тайм-аут MS SQL + Python (IronPython) - PullRequest
2 голосов
/ 19 июня 2010

Я запрашиваю MS SQL, используя python, используя исходный код 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.

Iпопробовал с timeout=1000000, но все равно получил ту же ошибку.

Если я запускаю один и тот же SQL на той же машине, используя MSSQL Client, это совершенно нормально.Знаете ли вы, как избежать этого исключения тайм-аута?

1 Ответ

0 голосов
/ 11 декабря 2015

Попробуйте увеличить свойство CommandTimeout в SqlCommand, как описано здесь: https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.commandtimeout(v=vs.110).aspx

Значение времени ожидания в строке подключения контролирует только время ожидания для первоначального подключения к базе данных. Это не поможет, если выполнение вашего SQL-запроса занимает много времени, поэтому вам нужно использовать вместо него CommandTimeout.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...