isc_event_block() による EPB の作成
イベントでの作業 へ戻る
アプリケーションが、イベントに関心を登録できるようにする前に、アプリケーションで 2 つの イベント パラメータ バッファ(EPB)を作成および設定しておかなければなりません。これは 1 つは関心対象の各イベントの初期の発生カウント値を、もう 1 つは変更された発生カウント値を保有します。 これらのバッファは、複数の API イベント関数にパラメータとして渡されます。
C では、次のように、各 EPB が char ポインタとして宣言されます:
char *event_buffer, *result_buffer;
バッファを宣言したら、isc_event_block() を呼び出してそれらに領域を割り当て、初期値で設定します。
isc_event_block() はまた、最低 2 つの追加パラメータを必要とします: アプリケーションが関心を登録するイベント数と、各イベントの名前の文字列です。 isc_event_block() への 1 回の呼び出しで、15 個までイベント名の文字列を渡すことができます。 イベント名は、ストアド プロシージャまたはトリガによって投稿されるイベントの名前と一致しなければなりません。
isc_event_block() は、名前のイベントそれぞれを処理するのに十分な領域を各 EPB のために確保しなければなりません。 これは、各バッファのサイズを示す値(バイト単位)を返します。
The syntax for isc_event_block() is:
ISC_LONG isc_event_block(char **event_buffer, char **result_buffer,
unsigned short id_count,
. . );
たとえば、次のコードは、3 つのイベントの EPB を設定します:
#include <ibase.h>;
. . .
char *event_buffer, *result_buffer;
long blength;
. . .
blength = isc_event_block(&event_buffer, &result_buffer, 3, "BORL",
"INTEL", "SUN");
. . .
このコードには、“BORL”、“INTEL”、“SUN” という名前のイベントを投稿するデータベースのための、トリガまたはストアド プロシージャが定義されています。
isc_event_block() の完全な構文については、isc_event_block() を参照してください。