この項では、OCI文字列関数について説明します。
表19-17 文字列関数
| 関数 | 用途 |
|---|---|
|
|
文字列メモリーの割り当てられたサイズ(バイト単位)を取得します。 |
|
|
文字列に文字列を割り当てます。 |
|
|
テキスト文字列を文字列に代入します。 |
|
|
文字列ポインタを取得します。 |
|
|
文字列メモリーをサイズ変更します。 |
|
|
文字列サイズを取得します。 |
用途
文字列の割当てメモリー・サイズをコードポイント(Unicode)またはバイト単位で取得します。
構文
sword OCIStringAllocSize ( OCIEnv *env,
OCIError *err,
const OCIString *vs,
ub4 *allocsize );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
OCIエラー・ハンドルです。エラーがある場合は、errに記録され、OCI_ERRORが戻されます。OCIErrorGet()をコールして診断情報を取得します。
割り当てられたサイズがバイト単位で戻される文字列です。vsは、NULL以外のポインタにしてください。
文字列メモリーの割当てサイズをバイト単位で戻します。
コメント
割り当てられるサイズは、実際の文字列サイズより大きいかそれに等しくなります。
関連関数
OCIErrorGet()、OCIStringResize()、OCIStringSize()
用途
文字列を別の文字列に割り当てます。
構文
sword OCIStringAssign ( OCIEnv *env,
OCIError *err,
const OCIString *rhs,
OCIString **lhs );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
OCIエラー・ハンドルです。エラーがある場合は、errに記録され、OCI_ERRORが戻されます。OCIErrorGet()をコールして診断情報を取得します。
割当ての右側(ソース)です。UTF-16が可能です。
割当ての左側(ターゲット)です。rhsがUTF-16の場合、バッファはUTF-16になります。
コメント
rhs文字列をlhs文字列に割り当てます。lhs文字列のサイズは、rhsのサイズに応じて変更されます。割り当てられる文字列は、NULLで終了します。長さのフィールドには、NULLによる終了に必要な余分なコードポイントやバイトは含まれません。
この関数は、割当て操作で領域が足りなくなった場合はエラーを戻します。
関連関数
OCIErrorGet()、OCIStringAssignText()
用途
ソース・テキスト文字列をターゲット文字列に割り当てます。
構文
sword OCIStringAssignText ( OCIEnv *env,
OCIError *err,
const OraText *rhs,
ub2 rhs_len,
OCIString **lhs );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
OCIエラー・ハンドルです。エラーがある場合は、errに記録され、OCI_ERRORが戻されます。OCIErrorGet()をコールして診断情報を取得します。
割当ての右側(ソース)となるテキスト文字列またはUTF-16 Unicode文字列です。
rhs文字列のバイト単位の長さです。
割当ての左側(ターゲット)です。rhsがUnicodeの場合、バッファはUnicodeになります。
コメント
rhs文字列をlhs文字列に割り当てます。lhs文字列のサイズは、rhsのサイズに応じて変更されます。割り当てられる文字列は、NULLで終了します。長さのフィールドには、NULLによる終了に必要な余分なバイトやコードポイントは含まれません。
関連関数
OCIErrorGet()、OCIStringAssign()
用途
指定の文字列のテキストへのポインタを取得します。
構文
text *OCIStringPtr ( OCIEnv *env,
const OCIString *vs );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
文字列が戻されるOCIStringオブジェクトへのポインタです。vsがUTF-16の場合は、戻されるバッファもUTF-16になります。戻されるバッファのエンコーディングを調べる場合は、OCIString vs自体のUTF-16情報をチェックします。これは、特定のOCIStringの設定が必ずenvと同じ設定であるとは保証されていないためです。チェックする関数は、オブジェクトのメンバー・フィールドをチェックするために設計されたオブジェクトOCI関数であることが必要です。
コメント
なし
関連関数
OCIErrorGet()、OCIStringAssign()
用途
指定の文字列のメモリー・サイズを変更します。
構文
sword OCIStringResize ( OCIEnv *env,
OCIError *err,
ub4 new_size,
OCIString **str );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
OCIエラー・ハンドルです。エラーがある場合は、errに記録され、OCI_ERRORが戻されます。OCIErrorGet()をコールして診断情報を取得します。
文字列の新規メモリー・サイズ(バイト単位)です。new_sizeには、文字列終了記号のヌル文字用の領域を含める必要があります。
OCIオブジェクト・キャッシュから解放された文字列の割当てメモリーです。
コメント
この関数は、オブジェクト・キャッシュ内の指定された可変長文字列のメモリー・サイズを変更します。文字列の内容は保持されません。この関数は、新しいメモリー・リージョンに文字列を割り当てることがあります。この場合、指定の文字列が占有していたメモリーは解放されます。strがNULLの場合、この関数は文字列のメモリーを割り当てます。new_sizeが0(ゼロ)の場合、この関数は、strが占有していたメモリーを解放し、NULLポインタ値を戻します。
関連関数
OCIErrorGet()、OCIStringAllocSize()、OCIStringSize()
用途
指定の文字列vsのサイズを取得します。
構文
ub4 OCIStringSize ( OCIEnv *env,
const OCIString *vs );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
サイズがバイト単位で戻される文字列です。
コメント
戻されたサイズには、NULLによる終了用の余分なバイトは含まれていません。
関連関数