Alterações de tipo de dados datetime
No ODBC 3.x, os identificadores para tipos de dados SQL de data, hora e carimbo de data/hora foram alterados de SQL_DATE, SQL_TIME e SQL_TIMESTAMP (com instâncias de #define no arquivo de cabeçalho de 9, 10 e 11) para SQL_TYPE_DATE, SQL_TYPE_TIME e SQL_TYPE_TIMESTAMP (com instâncias de #define no arquivo de cabeçalho de 91, 92 e 93), respectivamente. Os identificadores de tipo C correspondentes foram alterados de SQL_C_DATE, SQL_C_TIME e SQL_C_TIMESTAMP para SQL_C_TYPE_DATE, SQL_C_TYPE_TIME e SQL_C_TYPE_TIMESTAMP, respectivamente.
O tamanho da coluna e os dígitos decimais retornados para os tipos de dados datetime SQL no ODBC 3.x são os mesmos que a precisão e a escala retornadas para eles no ODBC 2.x. Esses valores são diferentes dos valores nos campos SQL_DESC_PRECISION e SQL_DESC_SCALE descritor. (Para mais informações, veja Tamanho da coluna, dígitos decimais, comprimento do octeto de transferência e tamanho de exibição.)
Essas alterações afetam SQLDescribeCol, SQLDescribeParam e SQLColAttribute; SQLBindCol, SQLBindParameter e SQLGetData; e SQLColumns, SQLGetTypeInfo, SQLProcedureColumns, SQLStatistics, e SQLSpecialColumns
A tabela a seguir mostra como o Gerenciador de Driver ODBC 3.x executa o mapeamento dos tipos de dados C de data, hora e carimbo de data/hora inseridos nos argumentos TargetType de SQLBindCol e SQLGetData ou no argumento ValueType de SQLBindParameter.
Tipo de dados código inserido |
2.x aplicativo para driver 2.x |
2.x aplicativo para driver 3.x |
3.x aplicativo para driver 2.x |
3.x aplicativo para driver 3.x |
---|---|---|---|---|
SQL_C_DATE (9) | Sem mapeamento | SQL_C_TYPE_DATE (91) | Sem mapeamento[1] | SQL_C_TYPE_DATE (91) |
SQL_C_TYPE_DATE (91) | Erro (de DM) | Erro (de DM) | SQL_C_DATE (9) | Sem mapeamento[2] |
SQL_C_TIME (10) | Sem mapeamento | SQL_C_TYPE_TIME (92) | Sem mapeamento[1] | SQL_C_TYPE_TIME (92) |
SQL_C_TYPE_TIME (92) | Erro (de DM) | Erro (de DM) | SQL_C_TIME (10) | Sem mapeamento[2] |
SQL_C_TIMESTAMP (11) | Sem mapeamento | SQL_TYPE_TIMESTAMP (93) | Sem mapeamento[1] | SQL_TYPE_TIMESTAMP (93) |
SQL_TYPE_TIMESTAMP (93) | Erro (de DM) | Erro (de DM) | SQL_C_TIMESTAMP (11) | Sem mapeamento[2] |
[1] Como resultado disso, um aplicativo ODBC 3.x que trabalha com um driver ODBC 2.x pode usar os códigos de data, hora ou carimbo de data/hora retornados nos conjuntos de resultados retornados pelas funções de catálogo.
[2] Como resultado disso, um aplicativo ODBC 3.x que trabalha com um driver ODBC 3.x pode usar os códigos de data, hora ou carimbo de data/hora retornados nos conjuntos de resultados retornados pelas funções de catálogo.
A tabela a seguir mostra como o Gerenciador de Driver ODBC 3.x executa o mapeamento dos tipos de dados SQL de data, hora e carimbo de data/hora inseridos no argumento ParameterType de SQLBindParameter ou no argumento DataType de SQLGetTypeInfo.
Tipo de dados código inserido |
2.x aplicativo para driver 2.x |
2.x aplicativo para driver 3.x |
3.x aplicativo para driver 2.x |
3.x aplicativo para driver 3.x |
---|---|---|---|---|
SQL_DATE (9) | Sem mapeamento | SQL_TYPE_DATE (91) | Sem mapeamento[1] | SQL_TYPE_DATE (91) |
SQL_TYPE_DATE (91) | Erro (de DM) | Erro (de DM) | SQL_DATE (9) | Sem mapeamento[2] |
SQL_TIME (10) | Sem mapeamento | SQL_TYPE_TIME (92) | Sem mapeamento[1] | SQL_TYPE_TIME (92) |
SQL_TYPE_TIME (92) | Erro (de DM) | Erro (de DM) | SQL_TIME (10) | Sem mapeamento[2] |
SQL_TIMESTAMP (11) | Sem mapeamento | SQL_TYPE_TIMESTAMP (93) | Sem mapeamento[1] | SQL_TYPE_TIMESTAMP (93) |
SQL_TYPE_TIMESTAMP (93) | Erro (de DM) | Erro (de DM) | SQL_TIMESTAMP (11) | Sem mapeamento[2] |
[1] Como resultado disso, um aplicativo ODBC 3.x que trabalha com um driver ODBC 2.x pode usar os códigos de data, hora ou carimbo de data/hora retornados nos conjuntos de resultados retornados pelas funções de catálogo.
[2] Como resultado disso, um aplicativo ODBC 3.x que trabalha com um driver ODBC 3.x pode usar os códigos de data, hora ou carimbo de data/hora retornados nos conjuntos de resultados retornados pelas funções de catálogo.