Conversões de tipo de dados
Os dados podem ser convertidos de um tipo para outro de uma a quatro vezes: quando os dados são transferidos de uma variável do aplicativo para outra (C para C); quando os dados de uma variável de aplicativo são enviados para um parâmetro de instrução (C para SQL); quando os dados em uma coluna de conjunto de resultados são retornado em uma variável de aplicativo (SQL para C); e quando os dados são transferidos de uma coluna de fonte de dados para outra (SQL para SQL).
Qualquer conversão que ocorre quando os dados são transferidos de uma variável de aplicativo a outra está fora do escopo deste documento.
Quando um aplicativo associa uma variável a uma coluna do conjunto de resultados ou parâmetro de instrução, o aplicativo implicitamente especifica a conversão do tipo de dados em sua escolha do tipo de dado da variável do aplicativo. Por exemplo, suponha que uma coluna contenha dados inteiros. Se o aplicativo associar uma variável inteira à coluna, ele especificará que nenhuma conversão será feita. Se o aplicativo associar uma variável de caractere à coluna, ele especificará que os dados devem ser convertidos de inteiros para caracteres.
O ODBC define como os dados são convertidos entre cada tipo de dados SQL e C. Basicamente, o ODBC oferece suporte a todas as conversões razoáveis, como de caractere para inteiro e inteiro para float, e não oferece suporte a conversões mal definidas, como de float a data. Os drivers são necessários para oferecer suporte a todas as conversões para cada tipo de dados SQL com o qual são compatíveis. Para obter uma lista completa de conversões entre tipos de dados SQL e C, consulte Converter dados de tipos de dados SQL para C e Converter dados de tipos de dados C para SQL no Apêndice D: tipos de dados.
O ODBC também define uma função escalar para converter dados de um tipo de dado SQL para outro. A função escalar CONVERT é mapeada pelo driver para a função ou funções escalares subjacentes definidas para executar conversões na fonte de dados. Como essa função é mapeada para funções específicas do DBMS, o ODBC não define como essas conversões funcionam ou quais conversões devem ter suporte. Um aplicativo descobre quais conversões têm suporte de um determinado driver e fonte de dados por meio das opções SQL_CONVERT em SQLGetInfo. Para obter mais informações sofre a função escalar CONVERT, consulte sequências de escape no ODBC e Função de conversão de tipo de dados explícitos.