Partilhar via


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, e as instâncias de #define foram alteradas de acordo.

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 obter mais informações, consulte Tamanho da coluna, dígitos decimais, comprimento do octeto de transferência e tamanho da exibição no Apêndice D: Tipos de dados.)

Essas alterações afetam SQLDescribeCol, SQLDescribeParam e SQLColAttributes; SQLBindCol, SQLBindParameter e SQLGetData; e SQLColumns, SQLGetTypeInfo, SQLProcedureColumns, SQLStatistics e SQLSpecialColumns.

Um driver ODBC 3.x processa as chamadas de função listadas no parágrafo anterior de acordo com a configuração do atributo de ambiente SQL_ATTR_ODBC_VERSION. Para SQLColumns, SQLGetTypeInfo, SQLProcedureColumns, SQLSpecialColumns e SQLStatistics, se SQL_ATTR_ODBC_VERSION estiver definido como SQL_OV_ODBC3, as funções retornarão SQL_TYPE_DATE, SQL_TYPE_TIME e SQL_TYPE_TIMESTAMP no campo DATA_TYPE. A coluna COLUMN_SIZE (no conjunto de resultados retornado por SQLColumns, SQLGetTypeInfo, SQLProcedureColumns e SQLSpecialColumns) contém a precisão binária para o tipo numérico aproximado. Se SQL_ATTR_ODBC_VERSION estiver definido como SQL_OV_ODBC2, as funções retornarão SQL_DATE, SQL_TIME e SQL_TIMESTAMP no campo DATA_TYPE, e a coluna COLUMN_SIZE conterá a precisão decimal para o tipo numérico aproximado.

Quando todos os tipos de dados são solicitados em uma chamada para SQLGetTypeInfo, o conjunto de resultados retornado pela função conterá SQL_TYPE_DATE, SQL_TYPE_TIME e SQL_TYPE_TIMESTAMP, conforme definido no ODBC 3.x, e SQL_DATE, SQL_TIME e SQL_TIMESTAMP, conforme definido no ODBC 2.x.

Devido a como o Gerenciador de Driver ODBC 3.x executa o mapeamento dos tipos de dados de data, hora e carimbo de data/hora, os drivers ODBC 3.x só precisam reconhecer #defines de 91, 92 e 93 para os 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, e só precisa reconhecer #defines de 91, 92 e 93 para os tipos de dados SQL de data, hora e carimbo de data/hora inseridos no argumento ParameterType de SQLBindParameter ou no argumento DataType de SQLGetTypeInfo. Para obter mais informações, consulte Alterações de tipo de dados datetime.