Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
複数のコールバックがデータベースサーバによってサポートされ、次のタスクを実行するために a_server_context 構造体を介して全文外部ライブラリに送られます。
エラーレポート
中断処理
メッセージのロギング
typedef struct a_server_context { void (SQL_CALLBACK *set_error)( a_server_context *this , a_sql_uint32 error_code , const char *error_string , short error_string_length ); a_sql_uint32 (SQL_CALLBACK *get_is_cancelled)( a_server_context *this ); void (SQL_CALLBACK *log_message)( a_server_context *this , const char *message_string , short message_string_length ); void *_context; } a_server_context, *p_server_context;
void
このメソッドを使用すると、外部事前フィルタおよび単語区切りによって、エラーコードとエラー文字列を指定してデータベースサーバにエラーを設定できます。データベースサーバは現在の操作をロールバックし、次の形式でユーザにエラーコードと文字列を返します。
"Error from external library: -<error_code>: <error_string>"
error_code には 17000 よりも大きい正の整数を指定します。
error_string には NULL で終了する文字列を指定します。
str_len には error_string の長さをバイト単位で指定します。
a_sql_uint32
外部事前フィルタおよび単語区切りでこのメソッドを定期的に呼び出して、現在の操作が中断されているかどうかをチェックする必要があります。このメソッドでは、現在の操作が中断された場合は 1 が返され、中断されていない場合は 0 が返されます。1 が返された場合、呼び出し元は以降の処理を停止し、すぐに戻る必要があります。
このメソッドを使用すると、外部事前フィルタおよび単語区切りによって、データベースサーバログにメッセージを記録できます。
message には NULL で終了する文字列を指定します。
msg_len にはメッセージの長さをバイト単位で指定します。
内部で使用されます。データベースサーバコンテキストへのポインタ。
a_server_context 構造体は、SQL Anywhere インストールディレクトリの SDK\Include サブフォルダのヘッダファイル exttxtcmn.h によって定義されます。
a_server_context 構造体によって公開されるメソッドを呼び出す場合は、オペレーティングシステムの同期プリミティブを外部ライブラリで使用しないようにしてください。