Quantcast
Channel: Tutorial - Embarcadero Community
Viewing all articles
Browse latest Browse all 503

TFDConnectionオプション|ロック処理[JAPAN]

$
0
0

FireDAC TFDConnectionのオプション部ロック処理について



TFDUpdateOptions クラスは、FireDAC データセットと DApt レイヤ アダプタ インターフェイスが以下の処理をどう行うかを制御する、一連のプロパティを表します 

データベース レコードのロックはLockMode、LockPoint、LockWaitです。

 

 

 

[ロックポイント(LockPoint)]


データベース レコードがロックされるタイミングを制御します。

LockPoint を使用すると、変更されたデータベース レコードがデータベースでロックされ、内部データ ストレージでロック済みとしてマークされるタイミングを指定することができます。

デフォルト値は、lpDeferred です。

lpImmediate レコードを編集または削除を開始した直後に、レコードをロック。
lpDeferred 更新をデータベースに送信する直前に、レコードをロック。

 

 

 

[ロック待機(LockWait)]


pessimistic ロックを取得する際に待機するかどうかを制御します。

LockWait プロパティを使用すると、FireDAC は、pessimistic ロックが取得されている間待機するか(True)、レコードがロックされている場合には即座にエラーを返すか(False)を制御することができます。デフォルト値は False です。

LockWait プロパティは、LockMode = lmPessimistic の場合にのみ、使用されます。

 

 

 

 

[ロックモード(LockMode)]


FireDAC が、データベース レコードの編集時に、それをどのようにロックするかを制御します。

LockMode プロパティを使用すると、データベース レコードのロック モードを指定することができます。

ロックを使用して、異なる DBMS セッションから同じレコードへの更新競合を、解決することができます。デフォルト値は、lmNone です。

 

lmNone 全くロックしない。
lmPessimistic DBMS が SELECT FOR UPDATE をサポートしている場合は pessimistic ロック、そうでなければ、optimistic ロックが使用されます。レコードがロックされた場合、FireDAC は、DBMS がロック タイムアウトをサポートしている場合には、一定期間待機し(LockWait)、そうでなければ、動作は DBMS の設定に依存します。

lmOptimistic ロック。

 

 

 

 

TFDLockMode


ロックを使用すると、異なる DBMS セッションから同じレコードを更新する際に発生する競合を解決できます。

lmNone ロックはまったく行われません。
lmPessimistic DBMS で SELECT FOR UPDATE がサポートされている場合は悲観的ロックが使用され、そうでない場合は楽観的ロックが使用されます。レコードがロックされた場合は、DBMS でロック タイムアウトがサポートされていれば、FireDAC は一定時間(LockWait)待機し、そうでなければ、DBMS の設定によって処置が決まります。
lmOptimistic 楽観的ロックが使用されます。

 

 

 

 


Viewing all articles
Browse latest Browse all 503

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>