Compartilhar via


SQLTables

SQLTables podem ser executados em um cursor de servidor estático. Uma tentativa de executar SQLTables em um cursor atualizável (dinâmico ou conjunto de chaves) retornará SQL_SUCCESS_WITH_INFO indicando que o tipo de cursor foi alterado.

SQLTables relata tabelas de todos os bancos de dados quando o parâmetro CatalogName é SQL_ALL_CATALOGS e todos os outros parâmetros contêm valores padrão (ponteiros NULL).

Para relatar catálogos, esquemas e tipos de tabela disponíveis, o SQLTables faz uso especial de cadeias de caracteres vazias (ponteiros de bytes de comprimento zero). As cadeias de caracteres vazias não são os valores padrões (ponteiros NULL).

O driver ODBC do SQL Server Native Client dá suporte a informações de relatório para tabelas em servidores vinculados aceitando um nome de duas partes para o parâmetro CatalogName: Linked_Server_Name.Catalog_Name.

SQLTables retorna informações sobre todas as tabelas cujos nomes correspondem a TableName e pertencem ao usuário atual.

SQLTables e parâmetros com valor de tabela

Quando o atributo de instrução SQL_SOPT_SS_NAME_SCOPE tem o valor SQL_SS_NAME_SCOPE_TABLE_TYPE, em vez de seu valor padrão de SQL_SS_NAME_SCOPE_TABLE, SQLTables retorna informações sobre tipos de tabela. O valor TABLE_TYPE retornado para um tipo de tabela na coluna 4 do conjunto de resultados retornado por SQLTables é TABLE TYPE. Para obter mais informações sobre SQL_SOPT_SS_NAME_SCOPE, consulte SQLSetStmtAttr.

Tabelas, exibições e sinônimos compartilham um namespace comum que é diferente do namespace usado por tipos de tabela. Apesar de não ser possível ter uma tabela e uma exibição com o mesmo nome, é possível ter uma tabela de um tipo de tabela com o mesmo nome, no mesmo catálogo e no mesmo esquema.

Para obter mais informações sobre parâmetros com valor de tabela, consulte Parâmetros com valor de tabela (ODBC).

Exemplo

// 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);  

Consulte Também

Função SQLTables
ODBC API Implementation Details