Partilhar via


SQLTables

É possível executar SQLTables 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 gera relatórios de 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 gerar relatórios dos catálogos, esquemas e tipos de tabela disponíveis, SQLTables faz uso especial de cadeias de caracteres vazias (ponteiros de comprimento zero bytes). 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 ao relatório de informações de 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 quaisquer tabelas cujos nomes correspondem ao TableName e que são de propriedade do usuário atual.

SQLTables e parâmetros com valor de tabela

Quando o atributo da instrução SQL_SOPT_SS_NAME_SCOPE tem o valor SQL_SS_NAME_SCOPE_TABLE_TYPE em vez do valor padrão SQL_SS_NAME_SCOPE_TABLE, SQLTables retorna informações sobre os 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

Conceitos

Outros recursos