• 検索結果がありません。

LMSGEN

ドキュメント内 Oracle8i NLS ガイド, リリース8.1 (ページ 140-143)

備考 備考備考 備考

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);

6

ドキュメント内 Oracle8i NLS ガイド, リリース8.1 (ページ 140-143)