Partilhar via


Tipos de dados do C padrão

Se um aplicativo especificar SQL_C_DEFAULT em SQLBindCol, SQLGetData ou SQLBindParameter, o driver pressupõe que o tipo de dados C do buffer de saída ou entrada corresponde ao tipo de dados SQL da coluna ou parâmetro ao qual o buffer está associado.

Importante

Aplicativos interoperáveis não devem usar SQL_C_DEFAULT. Em vez disso, eles devem sempre especificar o tipo C do buffer que estão usando. Isso ocorre porque os drivers nem sempre podem determinar corretamente o tipo C padrão, pelos seguintes motivos:

  • Se o DBMS promover um tipo de dados SQL de uma coluna ou parâmetro, o driver não poderá determinar o tipo de dados SQL original de uma coluna ou parâmetro. Portanto, ele não pode determinar o tipo de dados C padrão correspondente.

  • Se o driver não puder determinar se uma determinada coluna ou parâmetro está assinado, como geralmente é o caso quando isso é tratado pelo DBMS, o driver não poderá determinar se o tipo de dados C padrão correspondente deve ser assinado ou não assinado.

    Como SQL_C_DEFAULT é fornecido apenas como uma conveniência de programação, o aplicativo não perde nenhuma funcionalidade quando especifica o tipo de dados C real.

Uma tabela mostrando o tipo de dados C padrão para cada tipo de dados SQL está incluída em Convertendo dados de tipos de dados SQL para C, mais adiante neste apêndice.