Уведомления

Группа в Telegram: @pythonsu

#1 Март 24, 2010 12:00:26

linzman
От:
Зарегистрирован: 2010-03-10
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

pyodbc+ms sql server

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

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

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)')



Офлайн

#2 Март 24, 2010 12:07:26

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

pyodbc+ms sql server

linzman
The transaction manager has disabled its support for remote/network transactions."
Ну написано же, что менеджер транзакций не позволяет проводить удаленные/сетевые транзакции. Нужно просто активировать эту настройку на сервере.

UPD:
Тут написано, что нужно сделать пошагово.



Отредактировано (Март 24, 2010 12:09:04)

Офлайн

#3 Март 24, 2010 14:25:23

linzman
От:
Зарегистрирован: 2010-03-10
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

pyodbc+ms sql server

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

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



Офлайн

#4 Март 24, 2010 16:29:25

linzman
От:
Зарегистрирован: 2010-03-10
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

pyodbc+ms sql server

Ситуация была проста и тяжело постижима одновременно, пришлось порыться в спецификации 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
решение проблемы



Отредактировано (Март 24, 2010 16:29:50)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version