ユーザー・メッセージAPIは、カートリッジ開発者がユーザー・メッセージおよびOracleメッセージを取り出せる、単純なインタフェースを提供します。
表22-8に、OCIメッセージ関数を示します。
表22-8 OCIメッセージ関数
関数 | 用途 |
---|---|
|
メッセージ・ハンドルをクローズし、ハンドルに関連するすべてのメモリーを解放します。 |
|
メッセージを取り出します。バッファが0(ゼロ)でない場合、この関数は、バッファにメッセージをコピーします。 |
|
指定された言語でメッセージ・ハンドルをオープンします。 |
用途
メッセージ・ハンドルをクローズし、このハンドルに関連するすべてのメモリーを解放します。
構文
sword OCIMessageClose ( void *hndl, OCIError *errhp, OCIMsg *msgh );
パラメータ
メッセージ言語のOCI環境ハンドルまたはユーザー・セッション・ハンドルへのポインタです。
OCIエラー・ハンドルです。エラーがある場合は、errhp
に記録され、NULL
ポインタが戻されます。OCIErrorGet()
のコールによって診断情報を取得できます。
OCIMessageOpen()
によってすでにオープンされているメッセージ・ハンドルへのポインタです。
戻り値
OCI_SUCCESS
、OCI_INVALID_HANDLE
またはOCI_ERROR
用途
指定されたメッセージ番号のメッセージを取り出します。
構文
OraText *OCIMessageGet ( OCIMsg *msgh, ub4 msgno, OraText *msgbuf, size_t buflen );
パラメータ
OCIMessageOpen()
によってすでにオープンされているメッセージ・ハンドルへのポインタです。
メッセージ番号です。
取り出したメッセージの宛先バッファへのポインタです。buflen
が0(ゼロ)の場合、NULL
ポインタを使用できます。
宛先バッファのサイズです。
コメント
buflen
が0(ゼロ)でない場合、この関数は、msgbuf
が指し示すバッファにメッセージをコピーします。buflen
が0(ゼロ)の場合、msgh
が指し示すメッセージ・ハンドル内のメッセージ・バッファにメッセージがコピーされます。
戻り値
NULL
で終了するメッセージ文字列へのポインタが戻されます。翻訳されたメッセージが検出できない場合、同等の英語のメッセージが戻されます。同等の英語のメッセージが検出できない場合、NULL
ポインタが戻されます。
用途
指定された言語でメッセージ処理機能をオープンします。
構文
sword OCIMessageOpen ( void *hndl, OCIError *errhp, OCIMsg *msghp, const OraText *product, const OraText *facility, OCIDuration dur );
パラメータ
メッセージ言語のOCI環境ハンドルまたはユーザー・セッション・ハンドルへのポインタです。
OCIエラー・ハンドルです。エラーがある場合は、errhp
に記録され、NULL
ポインタが戻されます。OCIErrorGet()
のコールによって診断情報を取得できます。
戻りのためのメッセージ・ハンドルです。
製品名へのポインタです。製品名は、メッセージのディレクトリを検出するために使用されます。位置は、オペレーティング・システムによって異なります。たとえば、Solarisの場合、rdbms
製品のメッセージ・ファイルのディレクトリは$ORACLE_HOME/rdbms
です。
製品の機能名へのポインタです。メッセージ・ファイル名を構成するために使用されます。メッセージ・ファイル名は、変換の後、facility
を接頭辞とします。たとえば、img
機能の米英語のメッセージ・ファイル名はimgus.msb
です。us
は米英語の略称で、msb
はメッセージ・バイナリ・ファイル拡張子です。
戻りメッセージ・ハンドルのメモリー割当ての継続期間です。次のいずれかの値です。
OCI_DURATION_PROCESS
OCI_DURATION_SESSION
OCI_DURATION_STATEMENT
コメント
まず、hndl
に対応するメッセージ・ファイルをオープンします。オープンに成功すると、そのファイルを使用してメッセージ・ハンドルを初期化します。言語に対応するメッセージ・ファイルが検出できない場合、代替として主要言語ファイルを検索します。たとえば、南米スペイン語のファイルが検出できない場合、スペイン語のファイルをオープンします。代替手段が失敗すると、言語がAMERICAN
であるデフォルトのメッセージ・ファイルを使用します。関数は、msghp
パラメータにメッセージ・ハンドルへのポインタを戻します。
戻り値
OCI_SUCCESS
、OCI_INVALID_HANDLE
またはOCI_ERROR