トランザクションを開く

トランザクションを開始します。以降のレコードの変更は [トランザクション確定] または [トランザクション復帰] スクリプトステップが実行されるまでこのトランザクション内で行われます。

メモ  トランザクションは元のウインドウ内で処理されます。元のトランザクションのウインドウとは異なるウインドウで実行された処理は既存のトランザクションの外部で自動的に確定されます。

オプション 

  • [入力値の制限を無視] はフィールドに対して設定されているデータの入力値の制限オプションを無視してレコードが確定されます。このオプションは、[フィールド「フィールド名」のオプション] ダイアログボックスの [入力時の制限] タブで [データの入力時のみ] オプションが設定されているフィールドの入力値の制限のみを無視します。[常時] に設定されているフィールドへの入力は、[入力値の制限を無視] オプションが選択されている場合でも制限されます。入力値の制限の設定を参照してください。

  • [ESS ロックのコンフリクトを上書き] はオプティミスティックロックが設定されている場合 ODBC データソースのクライアントが変更を強制確定することを許可し、それ以外の場合は確定処理を制限します。ODBC データソースは外部 SQL ソース (ESS) とも呼ばれます。

互換性 

製品 サポート
FileMaker Pro はい
FileMaker Go はい
FileMaker WebDirect はい
FileMaker Server はい
FileMaker Cloud はい
FileMaker Data API はい
カスタム Web 公開 はい

起点バージョン 

19.6.1

説明 

トランザクションは現在のウインドウ内の 1 つまたは複数のレコードに対する変更で構成されています。トランザクションの変更は複数のデータベースファイル内の複数のテーブルに影響する可能性があります。トランザクションのすべての変更はまとめて確定されます。またはエラーが発生した場合もまとめて復帰されます。トランザクションは [トランザクションを開く] スクリプトステップにより開始されます。トランザクションを開始すると、その後のレコードの変更は [トランザクション確定] または[トランザクション復帰] スクリプトステップが実行されるまでトランザクションに保持されます。以降のステップはデータベーススキーマに保存されたレコードを変更し、トランザクションに関連するスクリプトステップとして使用できます。

[トランザクションを開く] スクリプトステップをスクリプトに追加すると、[トランザクション確定] スクリプトステップが自動的にペアになります。

トランザクション:

  • 1 つ以上のフィールドまたはテーブルの変更を 1 つの変更のセットとして結合する

  • 変更のセット全体を確定または復帰する

  • [トランザクションを開く] と [トランザクション確定] スクリプトステップの間のフィールドまたはテーブルの変更をグループ化する

  • より信頼性の高い変更のセットを作成できる

  • [トランザクション復帰] スクリプトステップを使用して自動的に復帰できる

  • グループとして成功 (確定) または失敗 (復帰) する

  • スキーマのルールが一致した場合は成功する

  • スキーマのルールが一致しない場合は自動的に復帰する

  • スキーマのルールが一致しない場合はオプションで検証設定をスキップして自動復帰を無効にできる。スキーマのルールを無効にするとトランザクションの整合性が損なわれる可能性があります。

  • [トランザクション確定] スクリプトステップがメインのファイルに変更を保存する前にローカルのテンポラリファイルで変更される

次の場合にトランザクションが自動的に確定され終了します:

  • 次のスクリプトステップがレイアウトウインドウを変更した場合: 新規ウインドウ、ウインドウを閉じる、ウインドウを選択

  • 次のダイアログボックスが使用された場合: データベースの管理、オブジェクトの管理、データソースの管理

  • 次の処理またはスクリプトステップが実行された場合: 名前を付けて保存、再ログイン

  • ファイルが閉じられた場合

次の場合にトランザクションが自動的に復帰します:

  • トランザクションを開始する前に未解決のスキーマエラーが存在する場合。この場合トランザクションは自動的にスキップされます。

  • 常に検証するように設定されているフィールドへの変更が、フィールドの検証オプションと一致しない場合

  • [トランザクション復帰] スクリプトステップが使用された場合

  • スクリプトがキャンセルされた場合

  • [全スクリプト終了] スクリプトステップがトランザクション内で使用された場合

  • スクリプトデバッガを使用してスクリプトがキャンセルされた場合

  • フィールドアクセスなし、レコードアクセスなし、テーブルアクセスなしなどのアクセス権エラーがある場合

メモ 

  • [トランザクションを開く] スクリプトステップを使用して別のトランザクション内でトランザクションを開始することはできません。

  • [スクリプト実行] スクリプトステップを使用するネストされたトランザクションは元のトランザクションと結合しますが、サブスクリプト内のネストされた [トランザクション復帰] および [トランザクション確定] スクリプトステップを無視します。

  • トランザクション内で使用される場合、レコードの削除処理は一度に 1 つのレコードを削除します。

  • [テーブルデータを削除] 処理は復帰できません。

  • [レコードのインポート] 処理がトランザクション内で使用された場合集計は表示されません。

  • [トランザクション復帰] スクリプトステップでは自動入力された増分シリアル値は復帰されません。

  • トランザクション内ではレイアウト設定の [レコードの変更を自動的に保存する] オプションは無視されます。

例 1 

トランザクションを開いて確定します。

コピー
トランザクションを開く []
    レコード/検索条件を開く
    フィールド設定 [資産::説明 ; "説明テキスト"]
トランザクション確定

例 2 

入力値の制限なしでトランザクションを開いて確定します。

コピー
トランザクションを開く [入力値の制限を無視]
    レコード/検索条件を開く
    フィールド設定 [資産::説明 ; "説明テキスト"]
トランザクション確定

例 3 

ESS ロックの保護なしでトランザクションを開いて確定します。

コピー
トランザクションを開く [ESS ロックのコンフリクトを上書き]
    レコード/検索条件を開く
    フィールド設定 [資産::説明 ; "説明テキスト"]
トランザクション確定