構文 構文構文 構文
sword OCIUnicodeToCharSet(dvoid *hndl, OraText *dst, size_t dstlen, CONST ub2 *src, size_t srclen, size_t *rsize)
備考 備考備考 備考
この関数は、srcで示されたUnicode文字列をマルチバイトに変換し、dstで示された配列に 格納します。ソース制限または宛先制限に到達すると、変換は停止します。関数は、マルチ バイトに変換されたバイト数を戻します。dstlenが0(ゼロ)の場合、変換結果のバイト数
がrsizeに戻されますが、実際の変換は行われません。
Unicode文字がOCI環境ハンドルまたはユーザー・セッション・ハンドルで指定されたキャ
ラクタ・セットで変換できない場合は、置換文字が使用されます。この場合、
OCICharsetConversionIsReplacementUsed()はTRUEを戻します。
戻り値 戻り値戻り値 戻り値
OCI_SUCCESS、OCI_INVALID_HANDLEまたはOCI_ERROR
表 表表
表5-44 OCICharSetToUnicodeのキーワードのキーワードのキーワードのキーワード/パラメータパラメータパラメータパラメータ キーワード
キーワードキーワード
キーワード/パラメータパラメータパラメータパラメータ 意味意味意味意味
hndl(IN/OUT) OCI環境ハンドルまたはユーザー・セッション・ハンドルへのポ
インタ
dst(OUT) 宛先バッファへのポインタ
dstlen(IN) 宛先バッファのサイズ(文字単位)
src(IN) ソース・マルチバイト文字列へのポインタ
srclen(IN) ソース文字列サイズ(バイト単位)
rsize(OUT) 変換可能な文字数
NULLポインタの場合は、戻り値がないことを意味します。
表表表
表5-45 OCIUnicodeToCharSetのキーワードのキーワードのキーワードのキーワード/パラメータパラメータパラメータパラメータ キーワード
キーワードキーワード
キーワード/パラメータパラメータパラメータパラメータ 意味意味意味意味
hndl(IN/OUT) OCI環境ハンドルまたはユーザー・セッション・ハンドルへのポ
インタ
dst(OUT) 宛先バッファへのポインタ
キャラクタ・セット変換
OCICharSetConversionIsReplacementUsed
構文 構文構文 構文
boolean OCICharSetConversionIsReplacementUsed(dvoid *hndl) 備考
備考備考 備考
この関数は、前回のOCICharSetToUnicode()の起動の際に、キャラクタ・セット変換で変換 できなかった文字に対して置換文字が使用されたかどうかを示します。
戻り値 戻り値戻り値 戻り値
前回のOCICharsetConv()の起動で置換文字が使用された場合はTRUE、使用されなかった
場合はFALSE。
Oracleキャラクタ・セットとUnicode(16ビットの固定幅Unicode)間の変換がサポート
されています。UnicodeからOracleキャラクタ・セットへのマッピングができない場合は、
置換文字が使用されます。したがって、ラウンドトリップ変換が常に可能なわけではありま せん。
キャラクタ・セット変換のサンプル・コード キャラクタ・セット変換のサンプル・コード キャラクタ・セット変換のサンプル・コード キャラクタ・セット変換のサンプル・コード
次に、Unicodeへの変換の簡単な例を示します。
size_t MyConvertMultiByteToUnicode(envhp, dstBuf, dstSize, srcStr) OCIEnv *envhp;
ub2 *dstBuf;
size_t dstSize;
OraText *srcStr;
{
dstlen(IN) 宛先バッファ・サイズ(バイト単位)
src(IN) Unicode文字列へのポインタ
srclen(IN) ソース文字列の長さ(文字単位)
rsize(OUT) 変換されたバイト数
NULLポインタの場合は、戻り値がないことを意味します。
表 表表
表5-46 OCICharSetConversionIsReplacementUsedのキーワードのキーワードのキーワードのキーワード/パラメータパラメータパラメータパラメータ キーワード
キーワードキーワード
キーワード/パラメータパラメータパラメータパラメータ 意味意味意味意味
hndl(IN/OUT) OCI環境ハンドルまたはユーザー・セッション・ハンドルへのポ
インタ 表表表
表5-45 OCIUnicodeToCharSetのキーワードのキーワードのキーワードのキーワード/パラメータパラメータパラメータパラメータ キーワード
キーワードキーワード
キーワード/パラメータパラメータパラメータパラメータ 意味意味意味意味
メッセージ・メカニズム
sword ret;
size_t dstLen = 0;
size_t srcLen;
/* get length of source string */
srcLen = OCIMultiByteStrlen(envhp, srcStr);
ret = OCICharSetToUnicode(envhp, /* environment handle */
dstBuf, /* destination buffer */
dstSize, /* size of destination buffer */
srcStr, /* source string */
srcLen, /* length of source string */
&dstLen); /* pointer to destination length */
if (ret != OCI_SUCCESS) {
checkerr(envhp, ret, OCI_HTYPE_ENV);
}
return(dstLen);
}
詳細は、『Oracle8i コール・インタフェース・プログラマーズ・ガイド』および『Oracle8i データ・カートリッジ開発者ガイド』を参照してください。
メッセージ・メカニズム メッセージ・メカニズム メッセージ・メカニズム メッセージ・メカニズム
ユーザー・メッセージAPIでは、カートリッジ開発者のために簡易インタフェースが提供さ れています。これによって、Oracleメッセージと同様にユーザー自身のメッセージを取り出 すことができます。
表 表表
表5-47 OCIメッセージ関数コールメッセージ関数コールメッセージ関数コールメッセージ関数コール 関数コール
関数コール関数コール
関数コール 説明説明説明説明
OCIMessageOpen() hndlで示された言語で、製品の機能に対するメッセージ・ハンドル をオープンします。
OCIMessageGet() msgnoで識別するメッセージ番号の付いたメッセージを取り出しま す。バッファが0(ゼロ)でない場合、この関数はmsgbufで示され たバッファにメッセージをコピーします。
OCIMessageClose() msghで示されたメッセージ・ハンドルをクローズし、そのハンドル に対応付けられているメモリーをすべて解放します。
メッセージ・メカニズム
詳細は、『Oracle8i コール・インタフェース・プログラマーズ・ガイド』および『Oracle8i データ・カートリッジ開発者ガイド』を参照してください。