2016-08-08 24 views
1

リンクされたサーバと通信するpymssqlを介して、pythonスクリプトからストアドプロシージャを実行しようとしています。手動で実行するとSPは動作しますが、とPythonスクリプトエラーから出て実行すると:リンクされたサーバとPyMSSQLを参照するストアドプロシージャの実行

(7391, 'The operation could not be performed because OLE DB 
provider"SQLNCLI11" for linked server "DBLOG" was unable to begin a 
distributed transaction.DB-Lib error message 20018, severity 16: 
\nGeneral SQL Server error: Check messages from the SQL Server\n') 

私はpymssql自体の中の制限として、これを参照する何かを見つけることができませんでした。私はどこから始めたらいいのか分かりません。私はpymssqlでかなりの作業を行い、接続に関する問題は一度も起こっていません。私が使用しているログインに十分な権限があることを確認しました。

アイデア?

ありがとうございました!

答えて

3

私のエラーメッセージが

(8501、わずかに異なっていたが、私は

UPDATE LINKEDSERVERNAME...TableName SET ... 

、例えば、リンクサーバー上のUPDATEを実行しようとしましたSPの問題を再作成することができました「MSDTCサーバー上の 'PANORAMA \ SQLEXPRESSは' unavailable.DB-Libのエラーメッセージ20018で、...

私はを追加することで問題を回避することができました私のpymssql.connectコールの最後に引数。

autocommit=Trueを使用して、いくつかの理由のための場合は、その後、MSDTCの設定については

MSDTC on server 'server is unavailable

で顔をしているため無意味です。

+0

この問題は完全に修正されました。今私は、一見無作為に終了した私の格納されたprocの問題に取り組んでいます。私はすべての印刷ステートメントを取り出し、nocountをオフにしました。それはそれを修正したようです。しかし、今では時折再び起こっています。 – Jacob

関連する問題