SQL Serverデータベースのリンクサーバーであるdb2データベースを更新しようとすると、このエラーが発生します。リンクサーバーのテーブルを更新するときに「トランザクションインターフェイス」エラーが発生する
ERROR:root:('42000', '[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]The requested operation could not be performed because OLE DB provider "IBMDA400" for linked server "iSeries" does not support the required transaction interface. (7390) (SQLExecDirectW)')
pyodbc経由でSQL Serverに接続していて、問題なしでSQLスクリプトを実行できます。ここで私は
sql3 = " exec ('UPDATE SVCEN2DEV.SRVMAST SET SVRMVD = ? WHERE svtype != ''*DCS-'' AND svcid = ? and svacct = ? ') AT [iSeries]"
db.execute(sql3, (row[2],srvid,row[0]))
db.commit()
でエラーが発生し、SQL取得され、念のためにここにpyodbcを使用して、私の接続文字列です:
conn = pyodbc.connect("DRIVER={SQL Server};SERVER="+ Config_Main.dbServer +";DATABASE="+ Config_Main.encludeName +";UID="+ Config_Main.encludeUser +";PWD=" + Config_Main.encludePass)
db = conn.cursor()
はまた、このクエリはSSMSでうまく実行されることに注意してください。私はopenqueryメソッドも試しましたが、運はありませんでした。何か案は?
こんにちは、[Bobby Tables](https://xkcd.com/327/)に会ったことがありますか? – alfasin
@alfasinこれは入力がない自動化されたプロセスです。 – Pintang
ああ、その場合は、コードが駄目です... – alfasin