Tips

SET QUERY AND LOCKコマンド

日付2009/01/01
ID09-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.