Symfoware Server アプリケーション開発ガイド(埋込みSQL編) - FUJITSU -
目次 索引 前ページ次ページ

第2章 アプリケーションの設計> 2.2 文字コード系の考慮

2.2.3 ホスト言語を混在する場合の注意事項

アプリケーションプロセス内でホスト言語が混在する場合の文字コード系について説明します。

■文字列型ホスト変数と各国語文字列型ホスト変数で使用する文字コード

SQL埋込みホストプログラムで使用する文字列型ホスト変数および各国語文字列型ホスト変数の文字コード系の設定方法について説明します。

SQL埋込みCプログラムの場合

文字列型ホスト変数および各国語文字列型ホスト変数で使用する文字コード系は、クライアント用動作環境ファイルのパラメタで指定します。

文字列型ホスト変数の文字コード系は、パラメタ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

◆SQL埋込みCOBOLプログラムの場合

文字列型ホスト変数および各国語文字列型のホスト変数の文字コード系は、環境変数LANGの値によって決定します。環境変数LANGとコード系の関係を以下に示します。

[表:SQL埋込みCOBOLプログラムの文字コード系]

環境変数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プログラムの文字コード系を参照してください。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005