DBCHERR - Call-Level Interface Version 2

Teradata® Call-Level Interfaceバージョン2リファレンス - ワークステーション接続システム

Product
Call-Level Interface Version 2
Release Number
17.10
Published
2021年6月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/ttt1608578409164.ditamap
dita:ditavalPath
ja-JP/ttt1608578409164.ditaval
dita:id
B035-2418
Product Category
Teradata Tools and Utilities

DBCHERRはCLIエラー コードに対応するエラー テキストを取得します。

パラメータ

DBCHERR (ErrorCode, dbcptr, ErrPtr)

次のような場合に当てはまります。

パラメータ 内容
ErrorCode 4バイトの整数エラー コード
dbcptr DBCAREAとして使用するためにアプリケーションによって割り振られた領域へのポインタ。

アプリケーション プログラムとCLIは、DBCAREAを共有して、CLIへの値の入力およびCLIからの値の出力にDBCAREAを使用します。

ErrPtr エラー コードを受け取るための構造体を指すポインタ。 この構造体は、次に示す形式でCOPTYPES.Hの中に定義されます。
typedef struct err_code {
   int e_class;
   int e_reason;
   long e_syst;
} *errpt_t;

この引数はオプションであり、特定のエラー コードが必要でなければ、NULLにする必要があります。

使用上の注意

  1. エラー テキストの取得方法は2つあります。

    方法1: DBCAREA内のmsg_text

    dbcptr->dbciMsgPがNULLの場合、取得されたエラー テキストはDBCAREA内のmsg_textバッファに76バイトまで格納されます。その長さはdbcptr->msg_lenに格納されます。 詳細については、DBCAREAMessage TextおよびMessage Lengthを参照してください。

    方法2: DBCAREA内のdbciMsgP

    dbcptr->dbciMsgPがNOT NULLで、dbcptr->dbciMsgM >0の場合、取得されたエラー テキストはdbciptr->dbciMsgPで示されたメモリ領域に格納され、その長さはdbcptr->dbcoMsgLに格納されます。 アプリケーションはメモリの割り当ておよび割り当て解除を行ないます。 詳細については、DBCAREAMessage Area PointerおよびMessage Length Returnedを参照してください。

  2. DBCHINI()およびDBCHCL()関数はエラー コードとエラー テキストを両方返します。 したがって、アプリケーションはこれらの関数を呼び出した後にDBCHERR()を呼び出してエラー テキストを取得する必要がありません。

方法1の例

.
.
struct DBCAREA dbc;
Int32 result = DBCHWL(...);
dbc.dbciMsgP = NULL;
if (DBCHERR(result, &dbc, NULL) != 0)
{
   printf("Error Text is %.*s\n", dbc.msg_len, dbc.msg_text);
}
.
.

方法2の例

.
.
struct DBCAREA dbc;
Int32 result = DBCHWL(...);
dbc.dbciMsgP = (char *)malloc(200);
dbc.dbciMsgM = 200;
if (DBCHERR(result, &dbc, NULL) != 0)
{
   printf("Error Text is %.*s\n", dbc.dbcoMsgL, dbc.dbciMsgP);
}
free(dbc.dbciMsgP);
dbc.dbciMsgP = NULL;
dbc.dbciMsgM = 0;
.
.