Partilhar via


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.