QUESTION(SQ0104004)
SQL Anywhereのカーソルはトランザクション終了時に自動的に CLOSE するようですが、トランザクション終了後も継続してOPENな状態にすることはできますか?
ANSWER
SQL Anywhereのデフォルトでは、カーソルはトランザクション終了時に自動的にCLOSE します。 トランザクションが終了してもカーソルをOPENな状態を継続するためには、2つの方法があります。
OPEN文で WITH HOLD 句を使用する。
オプションの WITH HOLD
句は、次に実行されるトランザクションのためにカーソルを開いたままにします。カーソルは現在の接続が終了するまで、または明示的なCLOSE文が実行されるまで開いたままです。接続が終了すると、カーソルは自動的に閉じます。
構文: OPEN カーソル名 WITH HOLD
データベースオプション CLOSE_ON_ENDTRANS を OFF にする
CLOSE_ON_ENDTRANS を ON に設定すると、カーソルはトランザクションの最後で自動的に閉じます。一方、OFF に設定していると、カーソルは閉じません。 このオプションはAdaptive Server Enterpriseとの互換性オプションです。 オプションは SET OPTION文で設定できます。
構文: SET OPTION [PUBLIC.]CLOSE_ON_ENDTRANS = 'OFF'
|