日本語

エラー: Workspace already in transaction mode

エラー メッセージ

Python スクリプトを実行し、エンタープライズ ジオデータベースに保存されているバージョン非対応データを編集しようとすると失敗し、次のランタイム エラーが返されます。

エラー: 
Workspace already in transaction mode
The image of the Python error

原因

エラーには、いくつかの原因が考えられます。

  • ライセンス レベル不足により、エンタープライズ ジオデータベースを編集できない。
  • 以下のコード サンプルに示すように、InsertCursor() 関数がループで使用されている。
arcpy.da.InsertCursor(PatchesFC, icFields) を iCursor として使用:
            iCursor.insertRow(rowTuple)
  • startEditing() 関数の with_undo パラメーターと multiuser_mode パラメーターが不正。 詳細については、Web ヘルプ ドキュメント「ArcGIS Desktop: エディター」をご参照ください。

解決策または対処法

次のいずれかの解決策を使用して、このエラーを解決してください。

  • バージョン対応登録されたデータの編集は、Standard または Advanced ライセンスでのみ可能です。 Basic ライセンスでは編集は無効になっています。 ライセンス レベルをアップグレードし、バージョン対応登録されたデータの編集を有効にします。
  • 以下のコード スニペットに示すように、InsertCursor() 関数をループに含める代わりにオブジェクトとして宣言します。
iCursor = arcpy.da.InsertCursor(PatchesFC, icFields)
  • startEditing() 関数の with_undo パラメーターと multiuser_mode パラメーターを False に設定します。 パラメーターを False にすると、現在のユーザーにデータ編集のフル コントロールが付与されます。 次のコード スニペットは、パラメーターを False に設定する方法を示しています。
edit.startEditing(False, False)
注意:
startEditing() 関数の 1 つ目のパラメーターは with_undo で、2 つ目のパラメーターは multiuser_mode です。

例:
startEditing({with_undo}, {multiuser_mode})

関連情報

更新日時: 5/22/2019

記事 ID: 000019111

ソフトウェア: ArcMap 10.5.1, 10.5