2010-06-18 2 views
2

Я запрашивая MS SQL с помощью питона с использованием исходного кода из http://www.ironpython.info/index.php/Accessing_SQL_Server:MS SQL + Python (IronPython) времени из

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, но все же получил ту же ошибку.

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

ответ

0

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

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

Смежные вопросы