Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 编程 » SQL Anywhere 数据访问 API » SQL Anywhere 嵌入式 SQL » 库函数参考

 

db_locate_servers_ex 函数

原型
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)