スケーラブルデータベースサーバ HiRDB Version 8 UAP開発ガイド

[目次][索引][前へ][次へ]

付録H.4 文字コード種別設定関数

文字コード種別設定関数とは,表分割ハッシュ関数,及び空白変換関数に対して,UAPから文字コード種別を通知するために使用する関数です。

この関数で文字コードの種別を設定すると,表分割ハッシュ関数,及び空白変換関数など,文字コード種別に依存する処理が実行できます。

文字コード種別設定関数を使用する場合の前提条件
表分割ハッシュ関数と同じです。詳細については,「付録H.1(1) 表分割ハッシュ関数を使用する場合の前提条件」を参照してください。

文字コード種別設定関数を使用したUAPの作成,実行
表分割ハッシュ関数と同じです。詳細については,「付録H.1(2) 表分割ハッシュ関数を使用したUAPの作成,実行」を参照してください。
<この項の構成>
(1) 文字コード種別設定関数の詳細

(1) 文字コード種別設定関数の詳細

(a) 記述構成

記述構成については,「付録H.1(3)(b) 記述構成」を参照してください。

(b) 文字コード種別設定関数p_rdb_set_lang

機能
表分割ハッシュ関数,及び空白変換関数が扱う文字コードの種別を設定します。

ヘッダファイル
#include<pdauxcnv.h>
文字コード種別設定関数を使用する場合に必ず指定します。

形式

int p_rdb_set_lang(char *lang);

引数
lang(入力)
表分割ハッシュ関数,及び空白変換関数が扱う文字コードの種別を設定します。
この引数には,次の文字コードが指定できます。
文字コード種別 引数langの指定値
シフトJIS漢字コード※1 "SJIS"
EUC中国語漢字コード "CHINESE"
単一バイト文字コード※2 "C"
Unicode(UTF-8) "UTF8"
中国語漢字コード(GB18030) "GB18030"
注※1 Linux,及びWindowsの場合に指定できます。
注※2 Windowsの場合に指定できます。
空の文字列を指定した場合(例:p_rdb_set_lang ("")),次のような動作となります。
  • UNIX環境の場合
    この関数の前に実行したsetlocale関数で,LC_ALLカテゴリに設定したロケールに対応する文字コード種別が設定されます。setlocale関数を実行していない場合は,LC_ALLカテゴリのデフォルトのロケールに対応する文字コード種別が設定されます。
  • Windows環境の場合
    OSのデフォルトとなる文字コード種別が設定されます。ただし,OSのデフォルトを上記の表以外の文字コード種別に設定している場合は,動作が保証されません。

戻り値
データ型:int
p_rdb_RC_RTRN(0)
正常終了
p_rdb_RC_ERRIVLG(-10)
文字コード種別不正

注意事項
  1. p_rdb_set_langは,次のどれかに該当する場合,必ず実行してください。
    ・Windows環境のUAPで文字コード種別を設定するとき
    ・UNIX環境のUAPでp_rdb_conv_space_utf8を呼び出すとき
    ・Linux環境のUAPで,文字コード種別をSJISに設定するとき
    ・UNIX環境のUAPで,文字コード種別をCHINESEに設定するとき
    注※
    p_rdb_conv_space_utf8を呼び出す前にp_rdb_set_langを実行してください。ただし,空白変換関数p_rdb_conv_spaceを呼び出す場合は,この関数ではなく,OS提供の関数setlocaleを使用してください。
  2. UNIX環境の場合,この関数で文字コード種別を設定した後に,使用できない文字コード種別を使用して別の関数を使用するときは,p_rdb_set_lang("")を発行してから,setlocale関数を呼び出して適切な文字コード種別を設定し直す必要があります。