可以在静态服务器游标上执行 SQLTable。 尝试对可更新的(动态或键集)游标执行 SQLTable 将返回SQL_SUCCESS_WITH_INFO指示游标类型已更改。
当 CatalogName 参数SQL_ALL_CATALOGS并且所有其他参数包含默认值(NULL 指针)时,SQLTables 报告来自所有数据库的表。
为了报告可用的目录、架构和表类型,SQLTables 特别使用空字符串(零长度字节指针)。 空字符串不是默认值(NULL 指针)。
SQL Server Native Client ODBC 驱动程序通过接受 CatalogName 参数的两部分名称( Linked_Server_Name.Catalog_Name)支持报告链接服务器上的表信息。
SQLTables 返回有关名称与 TableName 匹配且由当前用户拥有的任何表的信息。
SQLTable 和 Table-Valued 参数
当语句属性SQL_SOPT_SS_NAME_SCOPE具有值SQL_SS_NAME_SCOPE_TABLE_TYPE而不是其默认值SQL_SS_NAME_SCOPE_TABLE时,SQLTables 将返回有关表类型的信息。 SQLTables 返回的结果集第 4 列中为表类型返回的 TABLE_TYPE 值为 TABLE TYPE。 有关SQL_SOPT_SS_NAME_SCOPE的详细信息,请参阅 SQLSetStmtAttr。
表、视图和同义词共享与表类型使用的命名空间不同的公共命名空间。 虽然不能具有具有相同名称的表和视图,但在同一个目录和架构中可以有一个表和一个表类型,该表和表类型具有相同的目录和架构。
有关表值参数的详细信息,请参阅表值参数(ODBC)。
示例:
// Get a list of all tables in the current database.
SQLTables(hstmt, NULL, 0, NULL, 0, NULL, 0, NULL,0);
// Get a list of all tables in all databases.
SQLTables(hstmt, (SQLCHAR*) "%", SQL_NTS, NULL, 0, NULL, 0, NULL,0);
// Get a list of databases on the current connection's server.
SQLTables(hstmt, (SQLCHAR*) "%", SQL_NTS, (SQLCHAR*)"", 0, (SQLCHAR*)"",
0, NULL, 0);