SQL 解説書

DISCONNECT

DISCONNECT ステートメントは、活動状態の作業単位がない場合に (つまり、 コミットまたはロールバックの操作の後)、1 つまたは複数の接続を破棄します。 92

呼び出し

対話式 SQL 機能には外見上対話式の実行に見えるインターフェースが用意されている場合がありますが、 このステートメントはアプリケーション・プログラムに組み込むことだけが可能です。 これは、動的に準備できない実行可能ステートメントです。

許可

必要ありません。

構文

                               (1)
>>-DISCONNECT----+-server-name------+--------------------------><
                 +-host-variable----+
                 +-CURRENT----------+
                 |     .-SQL-.      |
                 '-ALL-+-----+------'
 

注:

  1. CURRENT または ALL という名前のアプリケーション・サーバーは、 ホスト変数によってのみ指定することができます。

説明

server-name または host-variable
server-name (サーバー名) またはその server-name を含む host-variable (ホスト変数) によって、 アプリケーション・サーバーを指定します。

host-variable (ホスト変数) を指定する場合、 それは、長さ属性が 8 以下の文字ストリング変数でなければならず、 標識変数を含めることはできません。 その host-variable に入っている server-name は、 左寄せする必要があり、引用符で区切ることはできません。

server-name は、 アプリケーション・サーバーを指定するデータベース別名である点に注意してください。 この名前は、アプリケーション・リクエスターのローカル・ディレクトリーにリストされている必要があります。

指定されたデータベース別名、またはホスト変数に含まれているデータベース別名は、 そのアプリケーション・プロセスの既存の接続を指定するものでなければなりません。 データベース別名が既存の接続を指定していない場合、 エラー (SQLSTATE 08003) になります。

CURRENT
アプリケーション・プロセスの現行接続を指定します。 アプリケーション・プロセスは、接続された状態でなければなりません。 接続されていない場合、エラー (SQLSTATE 08003) になります。

ALL
アプリケーション・プロセスの既存の接続を全部破棄することを指定します。 ステートメント実行時に接続が存在していない場合でも、 エラーまたは警告のメッセージは出されません。 任意に選択できるキーワードである SQL は RELEASE ステートメントの構文との一貫性を持たせるために含められています。

規則

例 1: IBMSTHDB への SQL 接続は、アプリケーションではもはや必要でなくなりました。 コミットかロールバックの操作を行った後、 次のステートメントを実行してその接続を破棄します。

   EXEC SQL DISCONNECT IBMSTHDB;

例 2: 現行の接続は、アプリケーションでもはや必要でなくなりました。 コミットかロールバックの操作を行った後、 次のステートメントを実行してその接続を破棄します。

   EXEC SQL DISCONNECT CURRENT;

例 3: 既存の接続は、アプリケーションでもはや必要でなくなりました。 コミットかロールバックの操作を行った後、 次のステートメントを実行して接続をすべて破棄します。

   EXEC SQL DISCONNECT ALL;


脚注:

92
DISCONNECT ステートメントの対象が単一の接続の場合、その接続は、 そのデータベースが既存のどの作業単位にも関係しておらず、 しかも活動状態の作業単位がない場合にのみ破棄されます。 たとえば、他のいくつかのデータベースの作業が終了し、 ステートメントの対象については終了していない場合、接続を破棄せずに切断することは可能です。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]