SET CONNECTION ステートメント
SET CONNECTION ステートメントは、 接続の状態を休止状態から現行状態に変更して、 指定された位置を現行サーバーにします。
このステートメントは、トランザクションの制御下にありません。
呼び出し
対話式 SQL 機能には外見上対話式の実行に見えるインターフェースが用意されている場合がありますが、 このステートメントはアプリケーション・プログラムに組み込むことだけが可能です。 これは、動的に作成できない実行可能ステートメントです。
許可
必要ありません。
構文
説明
- server-name または host-variable
- server-name (サーバー名) またはその server-name を含む host-variable (ホスト変数) によって、
アプリケーション・サーバーを指定します。
host-variable (ホスト変数) を指定する場合、 それは、長さ属性が 8 以下の文字ストリング変数でなければならず、 標識変数を含めることはできません。 その host-variable に入る server-name は、左揃えにする必要があり、引用符で区切ることはできません。
server-name は、 アプリケーション・サーバーを指定するデータベース別名である点に注意してください。 この名前は、アプリケーション・リクエスターの ローカル・ディレクトリーにリストされている必要があります。
server-name または host-variable は、 アプリケーション・プロセスの既存の接続を指定していなければなりません。 既存の接続を指定していない場合には、エラー (SQLSTATE 08003) になります。
現行接続に対する SET CONNECTION の場合、 アプリケーション・プロセスのすべての接続の状態は変更されません。
- 正常に接続された場合
- SET CONNECTION ステートメントが正常に実行された場合、
- 作成される接続はありません。 CURRENT SERVER 特殊レジスターは、指定した server-name で更新されます。
- それ以前の現行接続がある場合、 それは休止状態になります (別の server-name を指定した場合)。
- CURRENT SERVER 特殊レジスターと SQLCA は、 『CONNECT (タイプ 1)』で説明した方法と同じ方法で更新されます。
- 正常に接続されなかった場合
- SET CONNECTION ステートメントが失敗した場合、
- エラーの理由に関係なく、 アプリケーション・プロセスの接続状態とその接続の状態は変更されません。
- エラーになったタイプ 1 の CONNECT の場合と同様に、 SQLCA の SQLERRP フィールドは、エラーを検出したモジュール名に設定されます。
注
- タイプ 1 CONNECT ステートメントの使用は、 SET CONNECTION の使用を排除するわけではありませんが、 休止状態の接続は存在し得ないので、 SET CONNECTION ステートメントに現行接続を指定するのでない限り、 このステートメントは常にエラーになります (SQLSTATE 08003)。
SQLRULES(DB2)接続オプション (『分散作業単位のセマンティクスを制御するオプション』を参照) を使用した場合、SET CONNECTION の使用を排除するわけではありませんが、タイプ 2 CONNECT ステートメントを使用できるので、このステートメントは不要です。- 同じ作業単位で接続が使用され、休止状態になり、次に現行状態にリストアすると、 ロック、カーソル、および準備済みステートメントの状況に関して、 その接続はアプリケーション・プロセスでの最後の使用を反映したものになります。
例
EXEC SQL CONNECT TO IBMSTHDB;
/* Execute statements referencing objects at IBMSTHDB */ EXEC SQL CONNECT TO IBMTOKDB;
/* Execute statements referencing objects at IBMTOKDB */ EXEC SQL SET CONNECTION IBMSTHDB;
/* Execute statements referencing objects at IBMSTHDB */最初の CONNECT ステートメントでは IBMSTHDB の接続が作成され、 2 番目の CONNECT ステートメントでその接続は休止状態になり、 SET CONNECTION ステートメントによってその接続は現行状態に戻ります。
