エラー

Workspace already in transaction mode

Last Published: April 25, 2020

エラー メッセージ

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

記事 ID:000019111

ArcGIS の専門家からヘルプを受ける

テクニカル サポートへのお問い合わせ

Esri Support アプリのダウンロード

ダウンロード オプションに移動

関連情報

このトピックについてさらに調べる