Подключение MS SQL в python с использованием pyodb c и получение случайного pyodb c Операционная ошибка - PullRequest
2 голосов
/ 12 июня 2020

У меня есть код python, который подключается к базе данных MS SQL с помощью pyodb c. Я получаю данные из MS SQL и вношу в них некоторые изменения. Код работает на сервере Linux. Первоначально код работал нормально, но через несколько месяцев я получал совершенно случайную OperationalError при подключении.

pyodb c .OperationalError: ('08S01', '[08S01] [Microsoft] [ODB C Драйвер 17 для SQL Сервер] Поставщик TCP: Код ошибки 0x274 C (10060) (SQLExecDirectW) ')

Ошибки полностью случайны. Я использую хранимые процедуры для извлечения данных, и они отлично работают на моем SQL Server Management Studio. Я использую SQL Server 2017, python 3.5.2 и pyodb c 4.0.30. Я использую следующий оператор для подключения к базе данных.

dbconnection = pyodbc.connect("Driver={ODBC Driver 17 for SQL Server};Server="+Server+";Database="+Database+";UID="+UserID+";PWD="+Password, autocommit=True)

Я попытался использовать код переподключения для решения проблемы. Но проблема сохраняется, код всегда дает сбой пять раз.

**

retry_flag = True
retry_count = 0
while retry_flag and retry_count < 5:
  try:
      cursor = dbconnection.cursor()
      cursor.execute("EXEC sp")
      countyList = cursor.fetchall()
      retry_flag = False
  except:
      print ("Retry after 60 sec")
      retry_count = retry_count + 1
      time.sleep(60)

**

Я могу предоставить дополнительную информацию, если это поможет ответить на этот вопрос.

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