備考 備考備考 備考
lmsgenユーティリティは、テキスト・ベースのメッセージ・ファイル(.msg)をバイナリ
形式(.msb)に変換します。
構文 構文構文 構文
LMSGEN <text file> <product> <facility> [language]
WHERE,
<text file> is a message text file <product> the name of the product <facility> the name of the facility
[language] optional message language in <language>_<territory>.<character set>
format
この処理は、メッセージ・ファイルが言語で正しくタグ付けされていない場合に必要です。
表 表表
表5-50 OCIMessageCloseのキーワードのキーワードのキーワードのキーワード/パラメータパラメータパラメータパラメータ キーワード
キーワードキーワード
キーワード/パラメータパラメータパラメータパラメータ 意味意味意味意味
hndl(IN/OUT) メッセージ言語用のOCI環境ハンドルまたはユーザー・セッショ
ン・ハンドルへのポインタ
errhp(IN/OUT) OCIエラー・ハンドル
エラーがある場合は、errhpに記録され、NULLポインタが戻さ れます。診断情報はOCIErrorGet()をコールすると取得できます。
msgh(IN/OUT) OCIMessageOpen()によってあらかじめオープンされているメッ セージ・ハンドルへのポインタ
メッセージ・メカニズム
テキスト・メッセージ・ファイルの形式 テキスト・メッセージ・ファイルの形式 テキスト・メッセージ・ファイルの形式 テキスト・メッセージ・ファイルの形式
■ 「/」および「//」で始まる行は内部コメントとして扱われるため、その行は無視されま す。
■ 特定の言語でメッセージ・ファイルにタグを付けるには、次のように指定します。
# CHARACTER_SET_NAME= Japanese_Japan.JA16EUC
■ それぞれのメッセージは、次の3つのフィールドから構成されます。
<message #>, <warning level #>, <message text>
– message #は、メッセージ・ファイル内で一意な値である必要があります。
– warning level #は、現在使用されていないので、単に0を使用します。
– message textは、76バイトを超えてはいけません。
例 例例 例
/ Copyright (c) 1988 by the Oracle Corporation. All rights reserved.
/ This is a testing us7ascii message file
# CHARACTER_SET_NAME= american_america.us7ascii /
00000, 00000, "Export terminated unsuccessfully\n"
00003, 00000, "no storage definition found for segment(%lu, %lu)"
メッセージの例 メッセージの例 メッセージの例 メッセージの例
設定 設定 設定 設定
ここでは、.msbメッセージ・ファイルからメッセージを取り出す例を示します。次の設定 を使用します。
product = $HOME/myApp facility = imp
Language = American language
前述の設定に基づいて、メッセージ・ファイル$HOME/myApp/mesg/impus.msbが使用さ れます。
メッセージ・ファイル メッセージ・ファイル メッセージ・ファイル メッセージ・ファイル
lmsgenは、メッセージ・ファイル(impus.msg)をバイナリ形式(impus.msb)に変換しま
す。
メッセージ・メカニズム
次に、テキスト・メッセージ・ファイルimpus.msgの一部分を示します。
...
00128,2, "Duplicate entry %s found in %s"
...
メッセージのサンプル・コード メッセージのサンプル・コード メッセージのサンプル・コード メッセージのサンプル・コード
/* Assume that the OCI environment or user session handle, product, facility and cache size are all initialized properly. */
...
OCIMsg msghnd; /* message handle */
/* initialize a message handle for retrieving messages from impus.msg*/
err = OCIMessageOpen(hndl,errhp, &msghnd, prod,fac,OCI_DURATION_SESSION);
if (err != OCI_SUCCESS)
/* error handling */
...
/* retrieve the message with message number = 128 */
msgptr = OCIMessageGet(msghnd, 128, msgbuf, sizeof(msgbuf));
/* do something with the message, such as display it */
...
/* close the message handle when we has no more message to retrieve */
OCIMessageClose(hndl, errhp, msghnd);