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);
提供对 dblocate 实用程序所显示的信息的编程式访问,列出本地网络上正在监听 TCP/IP 的所有 SQL Anywhere 数据库服务器,但提供用于选择传递给回调函数的地址的掩码参数。
回调函数必须具有以下原型:
int (*)( SQLCA * sqlca, a_server_address * server_addr, void * callback_user_data );
对于找到的每台服务器都要调用回调函数。如果回调函数返回 0,则 db_locate_servers_ex 停止遍历服务器。
传递到回调函数的 sqlca 和 callback_user_data 是那些传递到 db_locate_servers 中的函数。第二个参数是指向 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 指向包含数据库名称的缓冲区。
支持三种位掩码标志:
这些标志在 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,否则返回 0。
有关详细信息,请参见服务器枚举实用程序 (dblocate)。