SET CONCURRENCY

カーソルの同時実行オプションを設定します。

構文:

>>--EXEC SQL--SET CONCURRENCY--.-READONLY-.---END-EXEC--><
                               +-LOCKCC---+
                               +-OPTCC----+
                               +-OPTCCVAL-+

パラメーター:

READONLY 読み取り専用のカーソルを指定します。データは変更できません。
LOCKCC 各行を取り込む際に、その行を含むデータ ページに更新用のロックを設定します。ロックが、開いたトランザクションのものではない場合、FETCH 文が次に実行される際にロックが解除されます。ロックが、開いたトランザクションのものである場合は、トランザクションを閉じる際にロックが解除されます。
OPTCC タイムスタンプまたは値を使用したオプティミスティック同時実行制御。カーソルによる行の変更は、前回の FETCH 文の実行から行が変更されていない状態に限り、正常に行われます。変更箇所の検出は、タイムスタンプの比較により、またはタイムスタンプを使用できない場合には、テキストおよびイメージ以外のすべての値の比較により行われます。
OPTCCVAL 値を使用したオプティミスティック同時実行制御。カーソルによる行の変更は、前回の FETCH 文の実行から行が変更されていない状態に限り、正常に行われます。変更箇所の検出は、テキストおよびイメージ以外のすべての値の比較により行われます。

依存関係:

BEHAVIOR コンパイラ指令オプションは、UNOPTIMIZED に設定する必要があります。

説明:

SET CONCURRENCY 文は、すべての ODBC ドライバーでサポートされているわけではありません。

接続を確立してから、SET CONCURRENCY を使用する必要があります。

次の場合を除いて、デフォルトは LOCKCC です。

  • SQL コンパイラ指令の ESQLVERSION オプションを 2.0 に設定する場合。この場合のデフォルト値は OPTCC です。
  • ODBC ドライバーで LOCKCC がサポートされていない場合。この場合は、SET CONCURRENCY が READONLY に設定されます (すべての ODBC ドライバーでこの設定が適用されます)。

ODBC ドライバーがサポートしていないオプションを設定しようとすると、エラー (-19512) が発生します。

注:
  • Microsoft Access ドライバーを使用している場合、CONCURRENCY はデフォルトで READONLY に設定されます。更新可能なカーソルを Access で使用する場合は、SQL(USECURLIB=YES) でコンパイルし、SCROLLOPTION STATIC および CONCURRENCY OPTCCVAL (または OPTIMISTIC) を使用する必要があります。
  • OPTCC または OPTCCVAL オプションを使用しており、前回の FETCH 文の実行後に行を変更した場合は、SQLCODE の値が -532 (SQLSTATE = "01001") になり、UPDATE WHERE CURRENT OF 文を実行できないことがあります。使用中のアプリケーションに、この状況に対処するコードを含める必要があります。

例:

EXEC SQL SET CONCURRENCY READONLY END-EXEC