SET QUERY AND LOCKコマンド
日付 | 2009/01/01 |
---|---|
ID | 09-007 |
バージョン | 11 |
プラットフォーム | Win & Mac |
4D v11 SQL Release 2 (11.2)では、続くクエリでセレクション全体のロックを試みる新しいコマンドSET QUERY AND LOCKが追加されました。
このコマンドの正否を確認するには、少し考慮が必要です。このコマンドには、次のような性質があります。
レコードがロックされるのは、カレントトランザクションの持続中です。
すべてのレコードをロックすることができなかったためにクエリが失敗した場合、カレントセレクションは空になります。ただし、セレクションが空になったは、純粋にクエリが何も結果を返さなかったため、ということも考えられます。
クエリが失敗した場合、4Dはすでにロックされているレコードのセット"LockedSet"を作成します。このセットには単一のレコード、つまり遭遇した最初のロックされたレコードだけが収められています。
そのような訳で、コマンドの正否を調べるには、OK変数とLockedSetの比較が必要です。
If ((OK=1) & (Records in set("LockedSet")=0)) ` The SET QUERY AND LOCK succeeded.