Symfoware Server アプリケーション開発ガイド(埋込みSQL編) - FUJITSU - |
目次
索引
![]() ![]() |
第2章 アプリケーションの設計 | > 2.2 文字コード系の考慮 |
アプリケーションプロセス内でホスト言語が混在する場合の文字コード系について説明します。
SQL埋込みホストプログラムで使用する文字列型ホスト変数および各国語文字列型ホスト変数の文字コード系の設定方法について説明します。
文字列型ホスト変数および各国語文字列型ホスト変数で使用する文字コード系は、クライアント用動作環境ファイルのパラメタで指定します。
文字列型ホスト変数の文字コード系は、パラメタCHAR_SETに指定します。指定する値を以下に示します。
文字コード系 |
指定値 |
---|---|
日本語EUCコードのS90コード |
EUC_S90 |
日本語EUCコードのU90コード |
EUC_U90またはEUC |
シフトJISコード |
SJIS |
UNICODE(UTF-8形式) |
UTF8 |
各国語文字列型ホスト変数の文字コード系は、パラメタNCHAR_CODEに指定します。指定する値を以下に示します。
文字コード系 |
指定値 |
|
---|---|---|
日本語EUCコード |
S90コード |
EUC_S90 |
U90コード |
EUC_U90またはEUC |
|
S90コード(COBOL_EUC形式) |
COBOL_EUC_S90 |
|
U90コード(COBOL_EUC形式) |
COBOL_EUC_U90またはCOBOL_EUC |
|
UNICODE |
UTF-8形式 |
UTF8 |
UCS-2形式 |
UCS2 |
|
バイトスワップしたUCS-2形式 |
UCS2B |
|
シフトJISコード |
SJIS |
クライアント用動作環境ファイルに文字コード系が指定されていない場合は、環境変数LANGの値によってデフォルトの文字コード系が使用されます。環境変数LANGと使用されるコード系の関係を以下に示します。
環境変数LANGの値 |
CHAR_SETの値 |
NCHAR_CODEの値 |
---|---|---|
ja |
EUC |
EUC |
ja_JP.U90 |
EUC_U90 |
EUC_U90 |
ja_JP.PCK |
SJIS |
SJIS |
ja_JP.eucJP |
EUC |
EUC |
ja_JP.UTF-8 |
UTF8 |
UTF8 |
文字列型ホスト変数および各国語文字列型のホスト変数の文字コード系は、環境変数LANGの値によって決定します。環境変数LANGとコード系の関係を以下に示します。
環境変数LANGの値 |
CHAR_SETの値 |
NCHAR_CODEの値 |
|
---|---|---|---|
ja |
EUC |
COBOL_EUC |
|
ja_JP.U90 |
EUC_U90 |
COBOL_EUC_U90 |
|
ja_JP.PCK |
SJIS |
SJIS |
|
ja_JP.eucJP |
EUC |
COBOL_EUC |
|
ja_JP.UTF-8 |
UTF8 |
|
UCS2 |
|
UCS2B |
SQL埋込みCOBOLプログラムの場合は、クライアント用動作環境ファイルに指定されたパラメタCHAR_SETおよびNCHAR_CODEは無視されます。
1つのアプリケーションプロセス内でSQL埋込みCプログラムとSQL埋込みCOBOLプログラムが混在する場合、プロセス内で最初に実行されるSQL文がSQL埋込みCプログラムの場合は、文字列型ホスト変数の文字コード系と各国語文字列型ホスト変数の文字コード系に注意が必要です。
SQL埋込みホストプログラムでは、アプリケーションプロセス内で最初にSQL文が実行される時にプロセスの文字コード系が決定されます。また、各SQL文が実行されるたびに文字コード系のチェックを行っています。
プロセス内で最初にSQL文が実行されるのがSQL埋込みCプログラムの場合、“SQL埋込みCプログラムの場合”の仕様にしたがって文字コード系が決定されます。その後SQL埋込みCOBOLプログラムが呼び出された場合、この文字コード系がSQL埋込みCOBOLプログラムに設定される文字コード系と異なっていたら、SQL埋込みCOBOLプログラムでSQL文を実行する際にエラーとなります。
SQL埋込みCプログラムからSQL埋込みCOBOLプログラムを呼び出している場合は、クライアント用動作環境ファイルに文字コード系を指定し、SQL埋込みCOBOLプログラムのチェックでエラーが発生しないようにする必要があります。設定する文字コード系は、表:SQL埋込みCOBOLプログラムの文字コード系を参照してください。
目次
索引
![]() ![]() |