Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
SQLDescribeCol e SQLColAttribute são usados para recuperar metadados do conjunto de resultados. A diferença entre essas duas funções é que SQLDescribeCol sempre retorna as mesmas cinco informações (nome, tipo de dados, precisão, escala e nulabilidade de uma coluna), enquanto SQLColAttribute retorna uma única parte das informações solicitadas pelo aplicativo. No entanto, SQLColAttribute pode retornar uma seleção muito mais rica de metadados, incluindo a sensibilidade a maiúsculas e minúsculas de uma coluna, o tamanho da exibição, a atualizabilidade e a capacidade de busca.
Muitos aplicativos, especialmente aqueles que exibem apenas dados, exigem apenas os metadados retornados pelo SQLDescribeCol. Para esses aplicativos, é mais rápido usar SQLDescribeCol do que SQLColAttribute porque as informações são retornadas em uma única chamada. Outros aplicativos, especialmente aqueles que atualizam dados, exigem os metadados adicionais retornados pelo SQLColAttribute e, portanto, usam ambas as funções. Além disso, SQLColAttribute dá suporte a metadados específicos do driver; para obter mais informações, consulte Driver-Specific tipos de dados, tipos de descritor, tipos de informações, tipos de diagnóstico e atributos.
Um aplicativo pode recuperar metadados do conjunto de resultados a qualquer momento após uma instrução ter sido preparada ou executada e antes que o cursor sobre o conjunto de resultados seja fechado. Pouquíssimos aplicativos exigem metadados do conjunto de resultados depois que a instrução é preparada e antes de ser executada. Se possível, os aplicativos devem aguardar para recuperar metadados até que a instrução seja executada, pois algumas fontes de dados não podem retornar metadados para instruções preparadas e emular esse recurso no driver geralmente é um processo lento. Por exemplo, o driver pode gerar um conjunto de resultados de linha zero substituindo a cláusula WHERE de uma instrução SELECT pela cláusula WHERE 1 = 2 e executando a instrução resultante.
Os metadados geralmente são caros para serem recuperados da fonte de dados. Por isso, os drivers devem armazenar em cache os metadados que recuperarem do servidor e mantê-los enquanto o cursor sobre o conjunto de resultados estiver aberto. Além disso, os aplicativos devem solicitar apenas os metadados de que precisam.