pyodbc fetchall() не возвращает результатов, если столбец, возвращаемый запросом, содержит слишком много данных
Установка: я использую Python 3.3 на клиенте Windows 2012. У меня есть запрос на выбор, запущенный с использованием pyodbc, который не возвращает никаких результатов через fetchall(). Я знаю, что запрос работает нормально, потому что я могу вынуть его и запустить из Microsoft SQL Management Studio без каких-либо проблем.
Я также могу удалить один столбец из списка выбора, и запрос вернет результаты. Для рассматриваемой строки базы данных этот столбец содержит большой объем данных XML (> 10000 символов), поэтому создается впечатление, что существует некоторая проблема переполнения буфера, приводящая к сбою fetchall (), хотя она не выдает никаких исключений, Я попытался поискать в Google, и я видел слухи о параметре конфигурации, чтобы увеличить размер буфера, но я не смог точно определить, как это сделать, или какой обходной путь будет.
Есть ли вариант конфигурации, который я могу использовать, или любая альтернатива pyodbc.
Отказ от ответственности: я использую Python только около 2 недель, так что я все еще новичок, хотя я приложил все усилия, чтобы тщательно исследовать свои проблемы, этот оказался неуловимым:
Кстати, я попытался использовать odbc вместо pyodbc, но тот же запрос выдает эту странную ошибку, которую Google не помогает мне решить.
[ОШИБКА] Исключительная ситуация при выполнении запроса Select: [][Отрицательный размер передан PyBytes_FromStringAndSize]
1 ответ
Кажется, эта проблема была решена путем изменения строки подключения SQL
ОТ:
DRIVER={SQL Server Native Client 11.0}
TO:
DRIVER={SQL Server}