Форум сайта python.su
Доброго времени суток!
Суть проблемы в следующем:
python 2.4.4 pywin32 2.13 pyodbc 2.1.6 (server 2003)
для записи данных в БД используется хранимая процедура одним из параметров которой является достаточно большой текст (порядка полумегабайта).
вызов хранимой процедуры (cursor.execute(“exec procedure ?, ?, ?”, parameters)) не выдает ошибки, но данные в базу не ложаться. В результате отслеживания прохождения запроса на sql-сервере выяснилось, что сервер выдает ошибку 6603.
поиск вариантов обхода ошибки ничего не дал (данные более 4Кb обрезаются и т.д., предлагают поставить сервиспак и обновить msdac, но уже стоит SP более свежий и все что нужно обновить, давно обновлено)
если для соединения с БД вместо pyodbc использовать odbc из пакета pywin32, то ни каких проблем при выше описанном вызове не происходит
Кто-нибудь сталкивался с подобной проблемой? Подскажите, что нужно сделать.
Офлайн
Пролблема решилась тремя символами кода :)
вместо:
cursor.execute("exec procedure ?, ?, ?", parameters)
cursor.execute("execute procedure ?, ?, ?", parameters)
Офлайн