Symfoware(R) Server RDBユーザーズガイド 応用プログラム開発編 - FUJITSU - |
目次 索引 |
応用プログラムの文字コード系とデータベースの文字コード系が異なる場合、文字列のコード変換が必要です。コード変換について以下の順に説明します。
コード変換の発生条件
データの格納領域の大きさ
未定義文字の変換
コード変換指定に従わないもの
Symfoware/RDBでは、EUC、シフトJISおよびUNICODEのデータ入力コード系が取り扱えます。応用プログラムの文字コード系とデータベースの文字コード系が異なる場合は、コード変換が行われます。以下にコード変換が発生する場合を示します。
なお、文字コード系が異なるデータベースからデータを受け取る場合、変換先の応用プログラムに、該当する文字コードが存在しない文字はアンダーバー“_”に変換されます。逆に、応用プログラムから文字コード系が異なるデータベースにデータを格納する場合、変換先のデータベースに、該当する文字コードが存在しない文字は、コード変換エラーとなります。
データベースの文字コード系 |
応用プログラムの文字コード系(注1) |
|||
---|---|---|---|---|
コード種別 |
対象OS |
EUCコード(注2) |
シフトJISコード |
UNICODE(注3) |
EUCコード |
UNIX系 |
◎ |
△ |
△ |
シフトJISコード |
UNIX系、 |
△ |
◎ |
△ |
UNICODE(注4) |
UNIX系、 |
△ |
△ |
◎ |
EBCDICコード |
グローバルサーバ |
× |
△ |
× |
JEFコード |
× |
△ |
× |
|
JISコード |
× |
△ |
× |
◎ : コード変換は発生しません。
△ : コード変換が発生します。
× : コード変換できません。
注1) 応用プログラムの文字コード系とは、定数およびホスト変数へ入出力するデータの文字コードです。
注2) UNIX系システム、Windows 2000、Windows XPおよびWindows Server 2003で使用可能です。
注3) UNIX系システムではC言語を使用した場合、Windows 2000、Windows XPおよびWindows Server 2003ではC言語、COBOL言語を使用した場合に使用可能です。
注4) Symfoware Server Enterprise Extended Edition、Symfoware Server Enterprise EditionまたはSymfoware Server Standard Editionの場合に使用可能です。
コード変換の方式は、RDA-SVが管理するクライアント環境管理簿に登録されているEBCDIC変換情報にしたがって行われます。クライアント環境管理簿の詳細については、利用するサーバに対応した“RDA-SVオペレーションガイド”を参照してください。
シフトJISは、各コード変換製品のデフォルトであるシフトJIS(MS)をそのまま利用してください。
文字コードの詳細については、UNIX系の場合は標準コード変換のマニュアルを、また、Windows Me、Windows 2000、Windows XPまたはWindows Server 2003の場合はInterstage Charset Managerのマニュアルを参照してください。
1つのコードはさらに複数に分かれています。例えば、EUCコードはEUC(U90)およびEUC(S90)、シフトJISコードはSJIS(R90)およびSJIS(MS)などに分かれています。コードのタイプが各クライアントによって異なる場合、1つのデータベースにEUC(U90)とEUC(S90)のデータが格納されると、データベースからデータを取り出すときに正しく表示されないことがあります。
したがって、クライアントが複数の場合は、クライアント間でコードを統一してください。
異なるシステム間で、データベースからデータを受け取る場合、応用プログラム側で十分なホスト変数領域を確保する必要があります。十分な領域長は、データべースに格納されているデータの種類に依存します。
表:各システムの文字の種類とバイト長を参考にしてください。
単位:バイト
文字の |
MS-DOSおよび |
Windows XP |
Windows 2000 および |
UNIX系 |
グローバル |
---|---|---|---|---|---|
英数字 |
1 |
1 |
1 |
1 |
(EBCDIC) 1 |
半角カナ |
(シフトJIS) 1 |
(シフトJIS) 1 |
(シフトJIS) 1 |
(EUC(U90)) 2 |
(JIS) 1 |
制御文字 |
1 |
1 |
1 |
1 |
1 |
漢字 |
(シフトJIS) 2 |
(シフトJIS) 2 |
(シフトJIS) 2 |
(EUC(U90))2〜3 |
(JEF) 2 |
変換先に該当する文字コードが存在しない文字は、アンダーバー“_”に変換されます。
コード変換は、クライアント用の動作環境ファイルの実行パラメタ(CHARACTER_TRANSLATE)の指定により、クライアントまたはサーバのどちらかで行います。ただし、この変換指定に従わず、サーバシステムでのコード系に従って処理されるものは、以下のとおりです。
ORDER BY句による整列順序
SQL述語の大小比較結果
集合関数の最大または最小値
目次 索引 |