OpenESQL は、COBOL のホスト変数で国際データを使用できるようにさまざまな方法でサポートします。国際データは、DBMS の列に UTF-16、UTF-8、または MBCS (混合バイトまたはマルチバイト文字セット) として格納されます。DBMS クライアント アプリケーションのロケールも国際化することができます。これらは、一般的には MBCS または UTF-8 です。
OpenESQL COBOL アプリケーションがホスト変数に国際データを送信するか、ホスト変数から国際データを返すように DBMS に要求を発行すると、OpenESQL がホスト変数宣言自体と DBMS クライアント アプリケーションのロケールに基づいて、適切な COBOL ホスト変数の内容を決定します。
データの損失を回避するには、DBMS クライアント アプリケーションのロケールを DBMS 向けの国際エンコーディング仕様と一致させ、次のように、最も適切な COBOL ホスト変数宣言を選択することを強く推奨します。
COBOL ホスト変数宣言
|
DBMS 国際エンコーティング仕様
|
サマリー
|
PIC X
|
UTF-16
|
クライアント アプリケーションのロケール1を使用して、DBMS データがホスト変数に変換されたり、ホスト変数から変換されたりします。
UTF-16 データがご使用のアプリケーションのロケールでサポートされていない場合、データが失われる可能性があります。
|
PIC X
|
UTF-8
|
また、クライアント アプリケーションのロケール1が UTF-8 である場合、データの変換または翻訳は行われません。
注: Windows プラットフォームでは、UTF-8 はアプリケーションのロケールとしてサポートされていません。
強く推奨します。
クライアント アプリケーションのロケールが UTF-8 でない場合、クライアント アプリケーションのロケール1 を使用して、DBMS データがホスト変数に変換されたり、ホスト変数から変換されたりします。これにより、データが失われる可能性があります。
|
PIC X
|
MBCS2
|
クライアント アプリケーションのロケール1が同じ MBCS2 を使用する場合、データの変換は行われません。
強く推奨します。
クライアント アプリケーションの MBCS が DBMS のそれと一致しない場合、クライアント アプリケーションのロケール1 を使用して、DBMS データがホスト変数に変換されたり、ホスト変数から変換されたりします。これにより、データが失われる可能性があります。
|
PIC N USAGE DISPLAY-1 PIC G4
|
UTF-16、UTF-8
|
クライアント アプリケーションのロケール1を使用して、データがホスト変数に変換されたり、ホスト変数から変換されたりします。
データは、クライアント アプリケーションのロケールの DBCS3に変換されます。これにより、データが失われる可能性があります。
|
PIC N USAGE DISPLAY-1 PIC G4
|
MBCS2
|
クライアント アプリケーションのロケール1が同じ MBCS2 を使用する場合、データの小規模な変換または翻訳が行われます。この場合、DBMS のシングルバイト文字は、クライアント アプリケーションのロケールの DBCS3 に変換されたり、DBCS から変換されたりします。
クライアント アプリケーションの MBCS が DBMS のものと一致しない場合、データが失われる可能性があります。
|
PIC N USAGE NATIONAL
|
UTF-16
|
データの変換または翻訳は行われません。
強く推奨します。
|
PIC N USAGE NATIONAL
|
UTF-8、MBCS2
|
形式が UTF-16 の場合、DBMS データがホスト変数に変換されたり、ホスト変数から変換されたりします。
データが UTF-8 と MBCS との間でホスト変数の UTF-16 形式に変換されたり、UTF-16 形式から変換されたりするので、データが失われることはありません。
推奨されます。
|
1コード ページ
2混合バイトまたはマルチバイト文字セットシングルバイト (SBCS) とダブルバイト (DBCS) で表現できる文字を含む混合文字セットをサポートするのに使用します。MBCS は日本、中国、韓国で存在します。たとえば、MBCS 932 は日本語用です。
3ダブルバイト文字セット。DBCS は、MBCS のダブルバイト文字を表す構成要素です。
4ご使用の COBOL プログラムに含まれる PIC N USAGE DISPLAY-1 および PIC G ホスト変数は、常にクライアント アプリケーションのロケールに対応する DBCS を使用します。
|
例 1
DBMS に MBCS または UTF-8 を格納する場合、クライアント アプリケーションのロケールを同じ値に設定し、COBOL プログラムで PIC X ホスト変数を使用するのが最適です。
例 2
データベースに UTF-16 を格納する場合、COBOL プログラムで PIC N USAGE NATIONAL ホスト変数を使用するのが最適です。