Найти - Пользователи
Полная версия: pyodbc+ms sql server
Начало » Базы данных » pyodbc+ms sql server
1
linzman
Добрый день, я тут бьюсь с одной проблемой уже долго, подключаюсь к удаленному серверу, селекты проходят, а хранимые процедуры совершающие транзакции с базой, не проходят,

при этом что характерно, те же процедуры я могу совершенно спокойно выполнять в среде менеджера базы данных, ошибка вот такая

pyodbc.ProgrammingError: ('42000', ' The operation could not be performed because OLE DB provider “SQLNCLI” for linked server “ABACUS” was unable to begin a distributed transaction. (7391) (SQLExecDirectW);

OLE DB provider “SQLNCLI” for linked server “ABACUS” returned message “The transaction manager has disabled its support for remote/network transactions.”. (7412)')
regall
linzman
The transaction manager has disabled its support for remote/network transactions."
Ну написано же, что менеджер транзакций не позволяет проводить удаленные/сетевые транзакции. Нужно просто активировать эту настройку на сервере.

UPD:
Тут написано, что нужно сделать пошагово.
linzman
я все это сделал, даже виндовые апдейты закачал,
в настройках все эти манипуляции проделал,
ситуация такова, что мой локальный transaction manager отключил распределенные процедуры. в винде можно в лепешку расшибиться но не понять что конкретно не работает.

Может быть можно как то поуправлять самим pyodbc чтобы изменить эту ситуацию? скажите пожалуйста где можно об этом почитать? Или как то запустить транзакцию не в распределенном режиме
linzman
Ситуация была проста и тяжело постижима одновременно, пришлось порыться в спецификации pyodbc для того чтобы понять
pyodbc при установлении соединения отключает autocommit
поэтому хранимая процедура которая вносит изменения в базу не проходила

self.cnxn=pyodbc.connect(“DRIVER={SQL Server}; SERVER=”+self.srv+“; DATABASE=”+self.db+“; UID=”+self.uid+“; PWD=”+self.pwd)
self.cnxn.autocommit = True
решение проблемы
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB