分散トランザクション処理機能 OpenTP1 クライアント使用の手引 TP1/Client/W,TP1/Client/P編
![[目次]](FIGURE/CONTENT.GIF)
![[索引]](FIGURE/INDEX.GIF)
![[前へ]](FIGURE/FRONT.GIF)
#include <dcvclt.h>
DCLONG dc_clt_codeconv_exec(DCLONG request, char CLTFAR *source,
DCULONG CLTFAR *source_len,
char CLTFAR *dest,
DCULONG CLTFAR *dest_len,
DCULONG cnthdl, DCLONG flags)
次に示す文字コード変換を実行します。
JISコードまたはシフトJISコードで構成される文字列を,EBCDICコード,EBCDIKコード,またはKEISコードで構成される文字列に変換します。
また,EBCDICコードEBCDIKコードまたはKEISコードで構成される文字列を,JISコードまたはシフトJISコードで構成される文字列に変換します。
(3) UAPで値を設定する引数
- request
変換の方法を次の要求コードで指定します。
- DCCLT_JISSJIS_TO_EBCKEIS
- JISコード,またはシフトJISコードで構成される文字列をEBCDICコード,EBCDIKコード,またはKEISコードで構成される文字列に変換します。
- DCCLT_EBCKEIS_TO_JISSJIS
- EBCDICコード,EBCDIKコード,またはKEISコードで構成される文字列を,JISコード,またはシフトJISコードで構成される文字列に変換します。
- source
変換する文字列を指定します。
- source_len
変換する文字列の長さを指定します。
1からDCRPC_MAX_MESSAGE_SIZEまでの範囲の長さが指定できます。
- dest
変換後の文字列を受け取る領域を指定します。
- dest_len
変換後の文字列を受け取る領域の長さを指定します。
1からDCRPC_MAX_MESSAGE_SIZEまでの範囲の長さが指定できます。
- cnthdl
dc_clt_codeconv_open()で取得したコード変換で使用される制御テーブルのハンドルを指定します。
- flags
変換時の条件をDCNOFLAGS,または次の形式(指定値の論理和)で指定します。
2,3,4,5,または6が先頭になる場合,|(ストローク)は省略してください。
〔1〕〔|2〕〔|3〕〔|4〕〔|5〕〔|6〕
1:{DCCLT_CNV_EBCDIC|DCCLT_CNV_EBCDIK}
2:{DCCLT_CNV_SPCHAN|DCCLT_CNV_SPCZEN}
3:{DCCLT_CNV_KEIS78|DCCLT_CNV_KEIS83}
4:{DCCLT_CNV_INVSPC|DCCLT_CNV_INVERR}
5:{DCCLT_CNV_TAB|DCCLT_CNV_NOTAB}
6:{DCCLT_CNV_CNTL|DCCLT_CNV_NOCNTL}
指定値の説明
- DCNOFLAGS
- 次に示す仮定値を使用します。
- ・EBCDIKコードを使用します。
- ・全角スペースを全角スペースのままにします。
- ・'83版KEISコードを使用します。
- ・無効コードがあった場合,エラーにします。
- ・タブコードを半角コードとして認識しません。直前,または直後のデータが全角コードの場合でもシフトコードは付けられません。
- ・制御コードを半角コードとして認識しません。直前,または直後のデータが全角コードの場合でもシフトコードは付けられません。
- DCCLT_CNV_EBCDIC
- EBCDICコードを使用します。
- DCCLT_CNV_EBCDIK
- EBCDIKコードを使用します。
- DCCLT_CNV_SPCHAN
- 全角スペースを半角スペース2個に変換します。
- この指定は,引数requestにDCCLT_JISSJIS_TO_EBCKEISを指定した場合だけ有効です。
- DCCLT_CNV_SPCZEN
- 全角スペースを全角スペースのままにします。
- DCCLT_CNV_KEIS78
- '78版KEISコードを使用します。
- DCCLT_CNV_KEIS83
- '83版KEISコードを使用します。
- DCCLT_CNV_INVSPC
- 無効コードがあった場合,スペースに変換します。
- DCCLT_CNV_INVERR
- 無効コードがあった場合,エラーにします。
- DCCLT_CNV_TAB
- タブコードを半角コードとして認識します。直前,または直後のデータが全角コードの場合はシフトコードが付けられます。
- DCCLT_CNV_NOTAB
- タブコードを半角コードとして認識しません。直前,または直後のデータが全角コードの場合でもシフトコードは付けられません。
- DCCLT_CNV_CNTL
- 制御コードを半角コードとして認識します。直前,または直後のデータが全角コードの場合はシフトコードが付けられます。
- DCCLT_CNV_NOCNTL
- 制御コードを半角コードとして認識しません。直前,または直後のデータが全角コードの場合でもシフトコードは付けられません。
(4) 値が返される引数
- dest
変換後の文字列が返されます。
- dest_len
変換後の文字列の長さが返されます。
| リターン値 |
数値
(10進数) |
意味 |
| DC_OK |
0 |
正常に終了しました。 |
| DCCLTER_INVALID_ARGS |
-2501 |
引数に指定した値が誤っています。 |
| DCCLTER_NO_BUFS |
-2504 |
メモリ不足が発生しました。
このリターン値は,制御テーブルのハンドルの値が不正である場合,および変換する文字列に全角文字(2バイト)が含まれているのに,全角文字の1バイト目までの文字列長が指定されている場合にも返されます。 |
| DCCLTER_INVALID_CODE |
-2550 |
文字列中に無効コードがあります。 |
| DCCLTER_OVERFLOW |
-2551 |
変換後の文字列の長さがCUPで用意した領域を超えています。 |
- この機能を使用する場合は,CommuniNetのコードマッピングテーブルが必要です。CommuniNetのコードマッピングユティリティで,コードマッピングテーブルを作成してから,この機能を使用してください。
- CommuniNetインストール後,一度もCommuniNetコードマッピングユティリティで保存されていないコードマッピングテーブルは,使用できません。この機能を使用する前に,CommuniNetコードマッピングユティリティでコードマッピングテーブルを保存してください。
- CommuniNetのコードマッピングテーブルのファイル名は,必ずCMAPEX.TBLとし,この機能を使用する前にWindowsのディレクトリ下に格納してください。
- この機能を使用している途中で,CommuniNetのコードマッピングユティリティによって,コードマッピングテーブルの内容を変更しても,文字コード変換機能の処理には反映されません。
- この機能では,エラーログ,およびUAPトレースの情報は取得しません。
- 文字コード変換の開始(dc_clt_codeconv_open関数)は,1回だけ発行して,文字コード変換の実行(dc_clt_codeconv_exec関数)をしてください。メモリ不足となるおそれがあるため,文字コード変換の開始は複数回発行しないでください。複数回発行した場合は,発行した回数分,文字コード変換の終了(dc_clt_codeconv_close関数)を発行してください。
- 引数requestにDCCLT_EBCKEIS_TO_JISSJIS,引数flagsにDCCLT_CNV_TAB,またはDCCLT_CNV_CNTLを指定した場合,タブコードまたは制御コードを半角コードとして意識させたデータを,あらかじめ用意しておく必要があります。
- コード変換の仕様の詳細については,「付録A コード変換の仕様」を参照してください。
All Rights Reserved. Copyright (C) 2006, 2008, Hitachi, Ltd.