Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
SQLDescribeCol e SQLColAttribute são usados para recuperar metadados do conjunto de resultados. A diferença entre estas duas funções é que o SQLDescribeCol devolve sempre as mesmas cinco informações (nome da coluna, tipo de dado, precisão, escala e anulabilidade), enquanto o SQLColAttribute devolve uma única informação solicitada pela aplicação. No entanto, o SQLColAttribute pode devolver uma seleção muito mais rica de metadados, incluindo a sensibilidade a maiúsculas minúsculas, tamanho do ecrã, atualização e pesquisabilidade de uma coluna.
Muitas aplicações, especialmente aquelas que apenas exibem dados, requerem apenas os metadados devolvidos pelo SQLDescribeCol. Para estas aplicações, é mais rápido usar SQLDescribeCol do que SQLColAttribute porque a informação é devolvida numa única chamada. Outras aplicações, especialmente as que atualizam dados, requerem os metadados adicionais devolvidos pelo SQLColAttribute e, por isso, utilizam ambas as funções. Além disso, o SQLColAttribute suporta metadados específicos de cada driver; para mais informações, consulte Driver-Specific Tipos de Dados, Tipos de Descritores, Tipos de Informação, Tipos de Diagnóstico e Atributos.
Uma aplicação pode recuperar metadados do conjunto de resultados a qualquer momento, depois de uma instrução ter sido preparada ou executada e antes de o cursor sobre o conjunto de resultados ser fechado. Muito poucas aplicações exigem metadados do conjunto de resultados após a instrução ser preparada e antes de ser executada. Se possível, as aplicações devem esperar para recuperar os metadados até depois da execução da instrução, pois algumas fontes de dados não conseguem devolver metadados para instruções preparadas e emular esta capacidade no driver é frequentemente um processo lento. Por exemplo, o driver pode gerar um conjunto de resultados de zero linhas substituindo a cláusula WHERE de uma instrução SELECT pela cláusula WHERE 1 = 2 e executando a instrução resultante.
Os metadados são frequentemente caros de recuperar da fonte de dados. Por isso, os drivers devem armazenar em cache quaisquer metadados que recuperem do servidor e mantê-los enquanto o cursor sobre o conjunto de resultados estiver aberto. Além disso, as aplicações devem pedir apenas os metadados de que absolutamente precisam.