Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
unsigned int db_locate_servers_ex( SQLCA * sqlca, SQL_CALLBACK_PARM callback_address, void * callback_user_data, unsigned int bitmask);
sqlca SQLCA 構造体へのポインター。
callback_address コールバック関数のアドレス。
callback_user_data データを格納するユーザー定義領域のアドレス。
bitmask DB_LOOKUP_FLAG_NUMERIC、DB_LOOKUP_FLAG_ADDRESS_INCLUDES_PORT、DB_LOOKUP_FLAG_DATABASES のいずれかで構成されるマスク。
正常終了すると 1 を返し、それ以外は 0 を返します。
TCP/IP で受信しているローカルネットワーク上のすべての SQL Anywhere データベースサーバーをリストして、dblocate ユーティリティによって表示される情報にプログラムからアクセスできるようにします。また、コールバック関数に渡されるアドレスの選択に使用するマスクパラメーターを提供します。
コールバック関数には、次のプロトタイプが必要です。
int (*)( SQLCA * sqlca, a_server_address * server_addr, void * callback_user_data );
コールバック関数は、検出されたサーバーごとに呼び出されます。コールバック関数が 0 を返すと、db_locate_servers_ex はサーバー間の反復を中止します。
コールバック関数に渡される sqlca と callback_user_data は、db_locate_servers に渡されるものと同じです。2 番目のパラメーターは a_server_address 構造体へのポインターです。a_server_address は sqlca.h で次のように定義されています。
typedef struct a_server_address { a_sql_uint32 port_type; a_sql_uint32 port_num; char *name; char *address; char *dbname; } a_server_address;
port_type この時点では常に PORT_TYPE_TCP です (sqlca.h では 6 に定義されています)。
port_num このサーバーが受信している TCP ポート番号です。
name サーバー名があるバッファーを指します。
address サーバーの IP アドレスがあるバッファーを指します。
dbname データベース名があるバッファーを指します。
3 つのビットマスクフラグがサポートされています。
これらのフラグは sqlca.h で定義されており、OR を使用して併用できます。
DB_LOOKUP_FLAG_NUMERIC は、コールバック関数に渡されたアドレスがホスト名ではなく IP アドレスであることを確認します。
DB_LOOKUP_FLAG_ADDRESS_INCLUDES_PORT では、コールバック関数に渡された a_server_address 構造体内の TCP/IP ポート番号がアドレスに含まれていることを示します。
DB_LOOKUP_FLAG_DATABASES は、検出されたデータベースごと、または検出されたデータベースサーバーごと (データベース情報の送信をサポートしていないバージョン 9.0.2 以前のデータベースサーバーの場合) にコールバック関数が 1 回呼び出されることを示します。