DBCHUE - 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

プラットフォームで定義されているイベントをユーザー定義の文脈に関連付ける。 現在は、1つのイベント タイプ(CLI_WIN_TIMEOUTとして内部的に定義されたタイムアウト)のみサポートしています。

制限

Microsoft Windowsプラットフォームでのみサポートされます。

パラメータ

次の構造体cli_win_eventは、この関数のパラメータEventIDAddressとして使用されます。

struct cli_win_event {
Int32 kind;			 	 			 		 	 	/*event kind */
void *data;					  	 	 	 /*event data */
}

kindはCLI_WIN_TIMEOUTとし、データはtimeval構造体を示す必要があります。

struct timeval {
Int32 tv_sec; 	  /* seconds */
Int32 tv_usec; 	 /* microseconds */
}

DBCHUEパラメータは次のとおりです。

DBCHUE (ReturnCode, ContextArea, EventIDAddress, Function)
Int32 *ReturnCode
char **ContextArea
struct cli_win_event *EventIDAddress
Int32 Function

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

パラメータ 内容
ReturnCode アプリケーション プログラムによって割り振られた4バイトの符号付き整数のアドレス。

DBCHUEから制御が戻ると、この整数には、成功または失敗を表わすコード値が入っています。 ゼロの戻り値は、成功を示します。ゼロ以外の戻りコードは、失敗の理由を示します。

返される可能性のある戻りコード:
  • EM_OK - エラーなし
  • BADUECNTA - 文脈領域が無効
  • BADUEKIND - 不正なkind値
  • BADUEDATA - data値がNULL
  • ALLOCFAIL - メモリ エラー
  • BADUEFUNC - 指定された関数が無効
ContextArea 文字ポインタを指す間接ポインタ。 INSERT_EVENT関数の実行中に、DBCHUEによってこのポインタにメモリが割り振られ、初期設定されます。 DELETE_EVENT関数の実行中に、このメモリはDBCHUEによって解放されます。

このContextAreaは、DBCHWLでのユーザー定義イベントを待つために使用されます。

EventIDAddress ユーザー定義イベント。 現在サポートされているイベントの種類は、CLI_WIN_TIMEOUTだけです。
Function サポートされる2種類のイベント(INSERT_EVENTおよびDELETE_EVENT)を定義する4バイトの符号付き整数。 INSERT_EVENTは、イベントを挿入し、イベントをContextAreaに関連付けます。 DELETE_EVENTは、イベントを削除し、イベントとContextAreaの関連付けを解除します。

使用上の注意

現在、DBCHUEは、INSERT_EVENTおよびDELETE_EVENTという2種類のイベントのみサポートしています。

CLI_WIN_TIMEOUTイベントだけがサポートされています。

ContextAreaには1つのイベントのみ関連付けることができます。

DBCHUEは、多重スレッドのCLIをサポートします。

この例では、DBCHWLで使用する5秒のタイムアウト イベントを定義します。

cli_win_event time_event;
static struct timeval time_val;
Int32 result = 0;
Int32 retcode = 0;
char *cnta;

time_val.tv_sec = 5;
time_val.tv_usec = 0;

time_event.kind = CLI_WIN_TIMEOUT;
time_event.data = (void *)&time_val;
retcode = DBCHUE(&result, (char **) &cnta, &time_event,
	 	 	 	 	 INSERT_EVENT);