Como os metadados são usados?
Os aplicativos exigem metadados para a maioria das operações de conjunto de resultados. Por exemplo, o aplicativo usa o tipo de dados de uma coluna para determinar que tipo de variável associar a essa coluna. Usa o comprimento de byte de uma coluna de caractere para determinar a quantidade de espaço necessária para exibir dados dessa coluna. Como um aplicativo determina os metadados para uma coluna depende do tipo do aplicativo.
Aplicativos verticais funcionam com tabelas predefinidas e executam operações predefinidas nessas tabelas. Como os metadados de conjunto de resultados para esses aplicativos são definidos antes mesmo de o aplicativo ser gravado e controlado pelo desenvolvedor de aplicativos, eles poderão ser embutidos em código no aplicativo. Por exemplo, se uma coluna de ID de pedido for definida como um número inteiro de 4 bytes na fonte de dados, o aplicativo poderá sempre associar um número inteiro de 4 bytes a essa coluna. Quando os metadados forem embutidos em código no aplicativo, uma alteração nas tabelas usadas pelo aplicativo geralmente indica uma alteração no código do aplicativo. Isso raramente é um problema, porque essas alterações geralmente são feitas como parte de um lançamento do aplicativo.
Como os aplicativos verticais, os aplicativos personalizados geralmente funcionam com tabelas predefinidas e executam operações predefinidas nessas tabelas. Por exemplo, um aplicativo pode ser gravado para transferir dados entre três fontes de dados diferentes; os dados a serem transferidos geralmente são conhecidos quando o aplicativo é gravado. Assim, aplicativos personalizados também tendem a ter metadados embutidos em código.
Aplicativos genéricos, principalmente aqueles que dão suporte a consultas ad hoc, quase nunca conhecem os metadados dos conjuntos de resultados que criam. Portanto, eles devem descobrir os metadados em tempo de execução usando as funções SQLNumResultCols, SQLDescribeCol e SQLColAttribute, que são descritas na próxima seção, SQLDescribeCol e SQLColAttribute.
Todos os aplicativos, independentemente de seu tipo, podem codificar metadados para os conjuntos de resultados retornados pelas funções de catálogo. Esses conjuntos de resultados são definidos na seção de referência deste manual.