Partager via


Type de données datetime

Dans ODBC 3.x, les identificateurs des types de données SQL date, heure et horodatage ont changé de SQL_DATE, de SQL_TIME et de SQL_TIMESTAMP (avec des instances de #define dans le fichier d’en-tête de 9, 10 et 11) à SQL_TYPE_DATE, SQL_TYPE_TIME et SQL_TYPE_TIMESTAMP (avec des instances de #define dans le fichier d’en-tête de 91, 92 et 93), respectivement. Les identificateurs de type C correspondants ont changé de SQL_C_DATE, de SQL_C_TIME et de SQL_C_TIMESTAMP à SQL_C_TYPE_DATE, SQL_C_TYPE_TIME et SQL_C_TYPE_TIMESTAMP, respectivement, et les instances de #define ont changé en conséquence.

La taille de colonne et les chiffres décimaux retournés pour les types de données datetime SQL dans ODBC 3.x sont identiques à la précision et à l’échelle retournées pour elles dans ODBC 2.x. Ces valeurs sont différentes des valeurs des champs SQL_DESC_PRECISION et SQL_DESC_SCALE descripteur. (Pour plus d’informations, consultez Taille des colonnes, chiffres décimaux, longueur des octets de transfert et taille d’affichage dans l’annexe D : Types de données.)

Ces modifications affectent SQLDescribeCol, SQLDescribeParam et SQLColAttributes ; SQLBindCol, SQLBindParameter et SQLGetData ; et SQLColumns, SQLGetTypeInfo, SQLProcedureColumns, SQLStatistics et SQLSpecialColumns.

Un pilote ODBC 3.x traite les appels de fonction répertoriés dans le paragraphe précédent en fonction du paramètre de l’attribut d’environnement SQL_ATTR_ODBC_VERSION. Pour SQLColumns, SQLGetTypeInfo, SQLProcedureColumns, SQLSpecialColumns et SQLStatistics, si SQL_ATTR_ODBC_VERSION est défini sur SQL_OV_ODBC3, les fonctions retournent SQL_TYPE_DATE, SQL_TYPE_TIME et SQL_TYPE_TIMESTAMP dans le champ DATA_TYPE. La colonne COLUMN_SIZE (dans le jeu de résultats retourné par SQLColumns, SQLGetTypeInfo, SQLProcedureColumns et SQLSpecialColumns) contient la précision binaire pour le type numérique approximatif. Si SQL_ATTR_ODBC_VERSION est défini sur SQL_OV_ODBC2, les fonctions retournent SQL_DATE, SQL_TIME et SQL_TIMESTAMP dans le champ DATA_TYPE, et la colonne COLUMN_SIZE contient la précision décimale pour le type numérique approximatif.

Lorsque tous les types de données sont demandés dans un appel à SQLGetTypeInfo, le jeu de résultats retourné par la fonction contient à la fois SQL_TYPE_DATE, SQL_TYPE_TIME et SQL_TYPE_TIMESTAMP tels que définis dans ODBC 3.x et SQL_DATE, SQL_TIME et SQL_TIMESTAMP tels que définis dans ODBC 2.x.

En raison de la façon dont ODBC 3.x Driver Manager effectue le mappage des types de données date, heure et timestamp, les pilotes ODBC 3.x n’ont besoin que de reconnaître les #defines de 91, 92 et 93 pour les types de données date, heure et timestamp C entrés dans les arguments TargetType de SQLBindCol et SQLGetData ou l’argument ValueType de SQLBindParameter, et n’ont besoin de reconnaître que #defines de 91, 92 et 93 pour les types de données SQL de date, d’heure et d’horodatage entrés dans l’argument ParameterType de SQLBindParameter ou l’argument DataType de SQLGetTypeInfo. Pour plus d’informations, consultez Modifications du type de données Datetime.