Dados retornados pelas funções de catálogo

Cada função de catálogo retorna dados como um conjunto de resultados. Este conjunto de resultados não é diferente de qualquer outro conjunto de resultados. Geralmente é gerado por uma instrução SELECT predefinida e parametrizada que é codificada no driver ou armazenada em um procedimento na fonte de dados. Para obter informações sobre como recuperar dados de um conjunto de resultados, consulte Foi criado um conjunto de resultados?.

O conjunto de resultados para cada função de catálogo é descrito na entrada de referência para essa função. Além das colunas listadas, o conjunto de resultados pode conter colunas específicas do driver após a última coluna predefinida. Essas colunas (se houver) são descritas na documentação do driver.

Os aplicativos devem vincular colunas específicas do driver em relação ao final do conjunto de resultados. Ou seja, eles devem calcular o número de uma coluna específica do driver como o número da última coluna - recuperada com SQLNumResultCols - menos o número de colunas que ocorrem após a coluna necessária. Isso evita ter que alterar o aplicativo quando novas colunas são adicionadas ao conjunto de resultados em versões futuras do ODBC ou do driver. Para que esse esquema funcione, os drivers devem adicionar novas colunas específicas do driver antes das colunas específicas do driver antigo para que os números das colunas não sejam alterados em relação ao final do conjunto de resultados.

Os identificadores retornados no conjunto de resultados não são citados, mesmo que contenham caracteres especiais. Por exemplo, suponha que o caractere de aspas do identificador (que é específico do driver e retornado por meio de SQLGetInfo) seja uma aspa dupla (") e a tabela Contas a Pagar contenha uma coluna chamada Nome do Cliente. Na linha retornada por SQLColumns para esta coluna, o valor da coluna TABLE_NAME é Contas a Pagar, não "Contas a Pagar", e o valor da coluna COLUMN_NAME é Nome do Cliente, não "Nome do Cliente". Para recuperar os nomes dos clientes na tabela Contas a Pagar, o aplicativo citaria estes nomes:

SELECT "Customer Name" FROM "Accounts Payable"  

Para obter mais informações, vejaIdentificadores.

As funções de catálogo são baseadas em um modelo de autorização semelhante ao SQL, no qual uma conexão é feita com base em um nome de usuário e senha, e somente os dados para os quais o usuário tem um privilégio são retornados. A proteção por senha de arquivos individuais, que não se encaixa nesse modelo, é definida pelo driver.

Os conjuntos de resultados retornados pelas funções de catálogo quase nunca são atualizáveis, e os aplicativos não devem esperar ser capazes de alterar a estrutura do banco de dados alterando os dados nesses conjuntos de resultados.