Determinação das Características de um Conjunto de Resultados (ODBC)

Aplica-se a: SQL ServerBase de Dados SQL do AzureAzure SQL Managed InstanceAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)

Metadados são dados que descrevem outros dados. Por exemplo, os metadados do conjunto de resultados descrevem as características de um conjunto de resultados, como o número de colunas no conjunto de resultados, os tipos de dados dessas colunas, os seus nomes, precisão e anulabilidade.

O ODBC fornece metadados às aplicações através das suas funções de API de catálogo. O driver ODBC do SQL Server Native Client implementa muitas das funções do catálogo da API ODBC como chamadas a um procedimento correspondente do catálogo do SQL Server.

As aplicações requerem metadados para a maioria das operações de conjuntos de resultados. Por exemplo, a aplicação utiliza o tipo de dado de uma coluna para determinar que tipo de variável atribuir a essa coluna. Utiliza o comprimento do byte de uma coluna de carácter para determinar quanto espaço deve ter para exibir dados dessa coluna. A forma como uma aplicação determina os metadados de uma coluna depende do tipo da aplicação.

As aplicações verticais normalmente trabalham com tabelas pré-definidas e realizam operações pré-definidas nessas tabelas. Como os metadados do conjunto de resultados para tais aplicações são definidos antes mesmo de a aplicação ser escrita e controlados pelo programador, podem ser codificados diretamente na aplicação. Por exemplo, se uma coluna de ID de ordem for definida como um inteiro de 4 bytes na fonte de dados, a aplicação pode sempre associar um inteiro de 4 bytes a essa coluna. Quando os metadados são codificados fixamente na aplicação, uma alteração nas tabelas usadas pela aplicação geralmente implica uma alteração no código da aplicação.

Em aplicações genéricas, especialmente aplicações que suportam consultas ad hoc, os metadados dos conjuntos de resultados que criam são tipicamente desconhecidos até à execução.

Para determinar as características de um conjunto de resultados, uma aplicação pode chamar:

Uma aplicação bem desenhada é escrita assumindo que o conjunto de resultados é desconhecido e utiliza a informação devolvida por estas funções para vincular as colunas do conjunto de resultados. Uma aplicação pode chamar estas funções a qualquer momento após uma instrução ser preparada ou executada. No entanto, para um desempenho ótimo, uma aplicação deve chamar SQLColAttribute, SQLDescribeCol e SQLNumResultCols após a execução da instrução.

Podes ter múltiplas chamadas simultâneas para metadados. Os procedimentos de catálogo do sistema subjacentes às implementações da API de catálogo ODBC podem ser chamados pelo driver ODBC enquanto este utiliza cursores estáticos do servidor. Isto permite que as aplicações processem simultaneamente múltiplas chamadas para funções do catálogo ODBC.

Se uma aplicação usar um determinado conjunto de metadados mais do que uma vez, provavelmente beneficiará de armazenar a informação em cache em variáveis privadas quando for obtida pela primeira vez. Isto impede chamadas posteriores para as funções de catálogo ODBC para a mesma informação, que forçam o driver a fazer viagens de ida e volta ao servidor.