Итак, я написал некоторый код для обновления SQL-сервера, используя значения из pandas DataFrame. После запуска следующего кода итерация продолжается до определенного момента, когда она останавливается из-за ошибки.
for index in range(len(description)):
cnxn = pyodbc.connect('DRIVER={SQL Server}; SERVER=x.database.windows.net; DATABASE=x; uid=x; pwd=x;)
cursor = cnxn.cursor()
cursor.execute("UPDATE Product SET MetaDescription = ? WHERE Id = ?", description['Description'][index], description['Id'][index])
cnxn.commit()
Следует отметить, что я выполняю аналогичный код (отличаются только значения) для другогофрейм данных, содержащий строку, которая отлично работает и обновляет таблицу без ошибок. Этот, однако, останавливается после обновления около 300 строк. Первая ошибка была такой:
Ошибка: ('01000', '[01000] [Microsoft] [Драйвер ODBC SQL Server] [DBNETLIB] ConnectionRead (recv ()). (65534) (SQLEndTran); [01000] [Microsoft] [Драйвер ODBC SQL Server] [DBNETLIB] Общая ошибка сети. Проверьте сетевую документацию. (11) ')
И после повторного запуска я получил этоодин:
Ошибка: ('01000', '[01000] [Microsoft] [Драйвер ODBC SQL Server] [DBNETLIB] ConnectionRead (recv ()). (65534) (SQLEndTran); [01000] [Microsoft] [Драйвер ODBC SQL Server] [DBNETLIB] Общая сетевая ошибка. Проверьте сетевую документацию. (11) ')
Единственная разница между работающим DataFrame и простоСтопы - это длина строк, но dtype для SQL Server имеет значение nvarchar (max). В чем может быть проблема здесь?