機能
コネクションを接続します。
記述形式
一般規則
CONNECT文の実行により、サーバとのコネクションを接続します。
CONNECT文が正常終了すると、現コネクションは、その時に接続されたコネクションとなります。すなわち、複数のコネクションを接続した場合、最後に実行したCONNECT文のコネクションが現コネクションとなります。
同じコネクション名を持つ複数のコネクションを接続することはできません。また、DEFAULTを指定した複数のコネクションを接続することもできません。
SQLサーバ名、コネクション名、認可識別子およびパスワードの前方および後方の空白は無視します。たとえば、SQLサーバ名“ SV1”の記述は“SV1”と等価です。
SQLサーバ名は、ローカルにあるSymfoware/RDBと接続する場合とリモートにあるSymfoware/RDBと接続する場合で、指定する内容が異なります。
ローカルのSymfoware/RDBと接続する場合(マルチRDB運用でない場合)
データベース名を指定します。
ローカルのSymfoware/RDBと接続する場合(マルチRDB運用の場合)
“[RDBシステム名.]データベース名”を指定します。RDBシステム名には、データベースの存在するSymfoware/RDBのシステム名を指定します。省略した場合は、環境変数RDBNAMEに指定されたRDBシステム名が有効となります。
リモートのSymfoware/RDBと接続する場合は、任意の文字列を指定することができます。ただし、同じSQLサーバ名を持つSERVER_SPECがクライアント用の動作環境ファイルに指定されていることが必要です。
SQLサーバ名は、文字列定数または文字列型の埋込み変数で指定します。
コネクション名は、複数のコネクションを接続する場合に、コネクションを識別する名前を指定します。ただし、コネクション名は一意であることが必要です。
コネクション名を省略した場合、SQLサーバ名がコネクション名になります。
コネクション名は、文字列定数または文字列型の埋込み変数で指定します。
ユーザ指定は、認可識別子とパスワードを斜線“/”で区切って指定します。認可識別子は、OSのログイン名または利用者名を指定します。
認可識別子は、CREATE USER文において登録されている必要があります。
標準セキュリティ運用の場合は、パスワードを省略することはできません。
OSのログイン名を使用する場合は、パスワードが設定されているログイン名でなければなりません。
ユーザ指定を省略した場合は、クライアント用の動作環境ファイルの実行パラメタ
“DEFAULT_CONNECTION”に指定された情報が有効となります。ただし、パスワードをクライアント用の動作環境ファイルに記述することは、セキュリティ上望ましくないので使用しないでください。
使用例
ローカルのSymfoware/RDBと接続する場合(マルチRDB運用の場合)
CONNECT TO 'SYS1.DB01'
ローカルのSymfoware/RDBと接続する場合(マルチRDB運用ではない場合)
CONNECT TO 'DB01'
リモートのSymfoware/RDBと接続する場合
CONNECT TO 'SV1' USER 'USER1/777###FF'
備考.コネクション名を省略しているためコネクション名は SQLサーバ名と同じ“SV1”となります。ロールを定義します。ロール定義文は、スキーマ要素に含まれます。
リモートのSymfoware/RDBと接続する場合で、SQLサーバ名、認可識別子およびパスワードをホスト変数で指定します。
EXEC SQL BEGIN DECLARE SECTION; VARCHAR server[13]; VARCHAR user[26]; EXEC SQL END DECLARE SECTION; : strcpy(server.sqlvar,"SV1"); server.sqllen = strlen(server.sqlvar); strcpy(user.sqlvar,"USER1/777###FF"); user.sqllen = strlen(user.sqlvar); EXEC SQL CONNECT TO :server USER :user;
備考. コネクション名を省略しているためコネクション名は SQLサーバ名と同じ“SV1”となります。