CONNECT

提供されたユーザー名およびパスワードを使用して、特定のデータベースに接続します。

構文、書き方 1:

>>---EXEC SQL---CONNECT TO---.-------------.------------->
                             +-data_source-+ 

 >--.------------.------USER-.-------------------.-------->
    +-AS db_name-+           +-user-.-----------++
                                    +-.password-+ 

 >-.--------------------.-.-----------------------------.->
   +-WITH-.----.-PROMPT-+ +-RETURNING output_connection-+
          +-NO-+

 >------END-EXEC--------><
    

構文、書き方 2:

>>---EXEC SQL---CONNECT user--.------------------------.->
                              +-IDENTIFIED BY password-+
                              +-------'/'password------+ 

 >---.--------------.--------.--------------------.------->
     +--AT db_name--+        +--USING data_source-+

 >---.----------------------.----------------------------->
     +--WITH-.----.-PROMPT--+ 
             +-NO-+ 

 >---.-----------------------------.---END-EXEC---><
     +-RETURNING output_connection-+

構文、書き方 3:

>>----EXEC SQL---CONNECT WITH PROMPT-------------------->
  
 >---.------------------------------.---END-EXEC----><
     +-RETURNING output_connection -+

構文、書き方 4:

>>----EXEC SQL---CONNECT RESET-.--------.--END-EXEC-----><
                               +--name--+

構文、書き方 5:

>>----EXEC SQL--------CONNECT DSN input_connection------->

 >---.------------------------------.-------END-EXEC-----><
     +-RETURNING output_connection -+

構文、書き方 6:

>>----EXEC SQL---CONNECT USING input_connection---------->
 
 >-----.-------------.---.---------------------.---------->
       +--AS db_name-+   +--WITH-.----.-PROMPT-+
                                 +-NO-+

 >-----.------------------------------.------END-EXEC---->< 
       +--RETURNING output_connection-+

パラメーター:

data_ source

ODBC または ADO.NET データ ストアの名前。ODBC データ ストアの場合、これは Microsoft ODBC データ ソース アドミニストレーターで作成された DSN です。ADO.NET データ ストアの場合、これは Micro Focus ADO.NET Connection Editor または HCOSS Manage Connections ツールを使用して作成されたデータ ソース名です。

data_source を省略した場合は、デフォルトの ODBC データ ソースが使用されます。データ ソースは、リテラルまたはホスト変数として指定できます。

db_name 接続の名前。接続名は最大 30 文字で、英数字およびファイル名として使用できる任意の記号を含められます。最初の文字は英字とします。接続名には、埋め込み SQL のキーワード、CURRENT、DEFAULT、ALL を使用しないでください。db_name を省略した場合は、DEFAULT が使用されます。db_name はリテラルまたはホスト変数として指定できます。

SQL Server に接続する際、db_name は接続先のデータベースです。

user 指定したデータ ソースで有効なユーザー ID。
password 指定したユーザー ID に有効なパスワード。
output_connection 特定のデータ ソースへの接続に使用する接続文字列として ODBC が定義する PIC X(n) テキスト文字列。続けて、この文字列を CONNECT USING 文の input_connection として指定できます。
input_connection データ ソースに接続するために ODBC が使用する接続情報を含む PIC X(n) テキスト文字列。テキスト文字列はリテラルまたはホスト変数のいずれかになります。
RESET 指定した接続をリセット (切断) します。
name name には、CURRENT、DEFAULT または ALL を指定できます。

OS 認証:

ODBC または ADO ランタイムで Oracle、DB2、または SQL Server を使用している場合は、次の 2 つの方法のいずれかによって OS 認証を実現できます。

  • CONNECT 文で、単一のスラッシュから成るユーザー ID を指定し、パスワードを省略するかすべて空白にして指定する
  • CONNECT 文で、ユーザー ID およびパスワードを完全に省略する

DBMS 製品の OS 認証に関する要件の詳細については、DBMS のドキュメントを参照してください。DBMS 製品によって要件は異なりますが、簡単な概要は次のとおりです。

SQL Server
Windows ユーザーは、対応する SQL Server ログインを保持している必要があります。
DB2
Windows ユーザーは、DB2USERS グループまたは DB2 ADMNS グループのメンバーである必要があります。
Oracle
OS 認証プレフィックスを使用して Oracle ユーザーを作成し、ドメイン名とユーザー名を含めます。

説明:

単一の接続のみ使用する場合は、接続に名前を指定する必要はありません。複数の接続を使用する場合は、各接続に名前を指定する必要があります。接続名はプロセス内で共通です。名前を指定した接続は、個別にコンパイルされたプログラム間で共有されます。これらのプログラムは、単一の実行可能モジュールへとリンクされます。

CONNECT 文が正常に実行されると、CONNECT RESET 以外のすべてのデータベース トランザクションは、最後に宣言されたこの現行の接続を処理します。別の接続を使用するには、SET CONNECTION 文を使用します。

ODBC ランタイム モジュールで、エントリの実行時または接続詳細の確認時にプロンプトが表示されるようにするには、CONNECT WITH PROMPT を使用します。

管理を簡素化するには、CONNECT DSN および CONNECT USING を使用します。

CONNECT TO、CONNECT、CONNECT WITH PROMPT、CONNECT DSN および CONNECT USING を使用すると、接続情報をアプリケーションに返すことができます。

注:
  • CONNECT WITH PROMPT 構文は、SQL(DBMAN=ADO) でコンパイルされたアプリケーションではサポートされません。
  • SQL コンパイラ指令の INIT オプションを使用すると、実行時にデータベースに暗黙的に接続されます。この場合、CONNECT 文を明示的に実行する必要はありません。
  • ファイル DSN (FileDSN) にパスワードを含めることはできません。
  • ADO.NET ランタイムおよび書き方 6 を使用している場合は、factory=invariantnameinput_connection 指定に追加する必要があります。不変の名前は、ADO.NET Connection Editor の [Add] ページで確認できます。

例、書き方 1:

     MOVE 'servername' TO svr
     MOVE 'username.password' TO usr

     EXEC SQL
        CONNECT TO :svr USER :usr
     END-EXEC

例、書き方 2:

     EXEC SQL
        CONNECT 'username.password' USING 'servername'
     END-EXEC      

例、書き方 3:

     EXEC SQL
        CONNECT WITH PROMPT
     END-EXEC

例、書き方 4:

     EXEC SQL
        CONNECT RESET
     END-EXEC

例、書き方 5:

    EXEC SQL
        CONNECT USING 'FileDSN=Oracle8;PWD=tiger'
     END-EXEC

上記の例では、ファイル DSN (FileDSN) を使用しています。

例、書き方 6:

 01  connectString               PIC X(72) value
                   'DRIVER={Microsoft Excel Driver (*.xls)};'
                   &'DBQ=c:\demo\demo.xls;'
                   &'DRIVERID=22'
                   .

 procedure division.

     EXEC SQL
         CONNECT USING :connectString
     END-EXEC

上記の例では、データ ソースを設定せずに Excel スプレッドシートに接続します。

 01  connString    string. 
 set connString    to  "Trusted_Connection=yes;Database=Northwind;server=localhost;factory=System.Data.SqlClient;" 
   

 procedure division.

     EXEC SQL 
         CONNECT USING :connString  
     END-EXEC 

上記の例は、ADO.NET ランタイムの適切な構文を示しています。