SQLCreatePkg
SQLCreatePkg() 関数は、バインド・ユーティリティーを呼び出します。このユーティリティーにより、バインド・ファイルに保管される SQL ステートメントが準備され、データベースに保管されるパッケージが作成されます。
仕様:
- CLI 9.5
構文
SQLRETURN SQLCreatePkg(
SQLHDBC hDbc,
SQLCHAR *szBindFileNameIn,
SQLINTEGER cbBindFileNameIn,
SQLCHAR *szBindOpts,
SQLINTEGER cbBindOpts)
関数引数
データ・タイプ | 引数 | 使用法 | 説明 |
---|---|---|---|
SQLHDBC | hDbc | 入力 | 接続ハンドル。 |
SQLCHAR* | szBindFileNameIn | 入力 | バインドするバインド・ファイルの名前、またはバインド・ファイル名のリストを含むファイルの名前。 |
SQLINTEGER | cbBindFileNameln | 入力 | szBindFileNameIn を格納するために必要な SQLCHAR エレメントの数、または SQL_NTS エレメントの数 (szBindFileNameIn がヌル終了の場合)。 |
SQLCHAR* | szBindOpts | 入力 | セミコロンで区切ったバインド・オプションのリスト。 |
SQLINTEGER | cbBindOpts | 入力 | szBindOpts を格納するために必要な SQLCHAR エレメントの数、または SQL_NTS エレメントの数 (szBindOpts がヌル終了の場合)。 |
使用法
/u/user1/sqllib/bnd/@all.lst
mybind1.bnd+mybind2.bnd+
mybind3.bnd+
mybind4.bnd
リスト・ファイル内のバインド・ファイル名に対してパス指定を使用できます。 パスが指定されていない場合、データベース・マネージャーはバインド・リスト・ファイルからパス情報を取得します。
- BLOCKING={ALL | NO | UNAMBIG}
- COLLECTION={schema name}
- ENCODING={ASCII | EBCDIC | UNICODE | CCSID | integer} (DB2® for z/OS® のみ)
- GENERIC={OPTION1 VALUE1 OPTION2 VALUE2 ...}
- GRANT={ PUBLIC | authid }
- GRANT_ROLE={ role }
- ISOLATION={CS | NC | RR | RS | UR}
- KEEPDYNAMIC={YES | NO}
- MSGFILE={MSG_FILE_NAME}
- RELEASE={COMMIT | DEALLOCATE} (DB2 for z/OS のみ)
- REOPT={NONE | ONCE | ALWAYS}
バージョン 10.5 フィックスパック 2 以降では、SQLCreatePkg 関数に、バインド・オプション RELEASE、GENERIC、および MSGFILE を指定できます。MSGFILE バインド・オプションは、バインド操作のメッセージの出力先のパスおよびファイル名を指定します。ファイル・パスを指定せずにファイル名のみを指定した場合、出力ファイルは現行作業ディレクトリー内に作成されます。 DB2 for z/OS バージョン 11 以降のサーバーへ接続している場合は、GENERIC バインド・オプションを使用して、アプリケーション互換性に関する特殊レジスター設定 (APPLCOMPAT) を指定できます。
KEEPDYNAMIC=YES; ISOLATION=CS; BLOCKING=NO; RELEASE=COMMIT; GENERIC=APPLCOMPAT V11R1 IMMEDWRITE NO
オプションにも値にも、大/小文字の区別はありません。例 1: REOPT=ONCE および ENCODING=CCSID を指定してファイルをバインドする。
strcpy (bindFileName, "insertEmp.bnd");
cliRC = SQLCreatePkg(hdbc,
bindFileName,
-3, // SQL_NTS
"REOPT=ONCE; ENCODING=CCSID",
-3, // SQL_NTS);
例 2: KEEPDYNAMIC=YES、BLOCKING=NO、および ISOLATION=RS を指定してリストのファイルをすべてバインドする。
strcpy (bindFileName, "/usr/ibm/dsdriver/bnd/@db2cli.lst");
cliRC = SQLCreatePkg(hdbc,
bindFileName,
strlen(bindFileName),
"KEEPDYNAMIC=YES; BLOCKING=NO; ISOLATION=RS",
-3, // SQL_NTS);
例 3: COLLECTION=SCHEMA NAME を指定してファイルをバインドする。
strcpy (bindFileName, "insertEmp.bnd");
cliRC = SQLCreatePkg(hdbc,
bindFileName,
-3, // SQL_NTS
"REOPT=ONCE; ENCODING=CCSID; COLLECTION=NEWTON",
-3, // SQL_NTS);
例 4: COLLECTION=XYZ、RELEASE=COMMIT、GENERIC オプション (APPLCOMPAT=V11R1 および IMMEDWRITE=NO を指定) を指定してリストのファイルをバインドする。
strcpy (bindFileName, "C:¥Program Files¥IBM¥IBM DATA SERVER DRIVER¥bnd¥@db2cli.lst");
cliRC = SQLCreatePkg(hdbc,
bindFileName,
strlen(bindFileName),
"COLLECTION=XYZ;RELEASE=COMMIT;GENERIC= APPLCOMPAT V11R1 IMMEDWRITE NO",
-3, // SQL_NTS);
例 5: MSGFILE=/TMP/bindOutput.txt および REOPT=ONCE を指定してリストのファイルをバインドする。
strcpy (bindFileName, "/usr/ibm/dsdriver/bnd/@db2cli.lst");
cliRC = SQLCreatePkg(hdbc,
bindFileName,
strlen(bindFileName),
"MSGFILE=/TMP/bindOutput.txt;REOPT=ONCE;",
-3, // SQL_NTS);
例 6: ファイルおよび特権の付与のリストをユーザー ZURBIE にバインディングします。 EXECUTE 特権と BIND 特権がユーザー ZURBIE に付与されます。
strcpy (bindFileName, "/usr/ibm/dsdriver/bnd/@db2cli.lst");
cliRC = SQLCreatePkg(hdbc,
bindFileName,
strlen(bindFileName),
"ACTION=REPLACE;GRANT='zurbie';MSGFILE=bindmsg.txt;
RELEASE=DEALLOCATE;COLLECTION=XYZ;GENERIC=ENCODING
UNICODE keepdynamic yes;ISOLATION=SQL_TXN_READ_UNCOMMITTED;
BLOCKING=NO;REOPT=NONE",
-3, // SQL_NTS);