Identificateurs et descripteurs des types de données
Les types de données répertoriés dans les sections Types de données SQL et Types de données C plus haut dans cette annexe sont des types de données « concis » : chaque identificateur fait référence à un type de données unique. Il existe une correspondance un-à-un entre l’identificateur et le type de données. Toutefois, les descripteurs n’utilisent pas dans tous les cas une valeur unique pour identifier les types de données. Dans certains cas, ils utilisent un type de données « détaillé » et un sous-code de type. Pour tous les types de données à l’exception des types de données datetime et interval, l’identificateur de type détaillé est identique à l’identificateur de type concis et la valeur dans SQL_DESC_DATETIME_INTERVAL_CODE est égale à 0. Toutefois, pour les types de données datetime et interval, un type détaillé (SQL_DATETIME ou SQL_INTERVAL) est stocké dans SQL_DESC_TYPE, un type concis est stocké dans SQL_DESC_CONCISE_TYPE et un sous-code pour chaque type concis est stocké dans SQL_DESC_DATETIME_INTERVAL_CODE. La définition de l’un de ces champs affecte les autres. Pour plus d’informations sur ces champs, consultez la description de la fonction SQLSetDescField .
Lorsque le champ SQL_DESC_TYPE ou SQL_DESC_CONCISE_TYPE est défini pour certains types de données, les champs SQL_DESC_DATETIME_INTERVAL_PRECISION, SQL_DESC_LENGTH, SQL_DESC_PRECISION et SQL_DESC_SCALE sont automatiquement définis sur les valeurs par défaut, en fonction du type de données. Pour plus d’informations, consultez la description du champ SQL_DESC_TYPE dans SQLSetDescField. Si l’une des valeurs par défaut définies n’est pas appropriée, l’application doit définir explicitement le champ de descripteur par le biais d’un appel à SQLSetDescField.
Le tableau suivant présente l’identificateur de type concis, l’identificateur de type détaillé et le sous-code de type pour chaque identificateur de type SQL et C datetime et interval. Comme indiqué dans ce tableau, pour les types de données datetime et interval, les champs SQL_DESC_TYPE et SQL_DESC_DATETIME_INTERVAL_CODE ont les mêmes constantes de manifeste à la fois pour les types de données SQL (dans les descripteurs d’implémentation) et pour les types de données C (dans les descripteurs d’application).
Type SQL concis | Type C concis | Type détaillé | DATETIME_INTERVAL_CODE |
---|---|---|---|
SQL_TYPE_DATE | SQL_C_TYPE_DATE | SQL_DATETIME | SQL_CODE_DATE |
SQL_TYPE_TIME | SQL_C_TYPE_TIME | SQL_DATETIME | SQL_CODE_TIME |
SQL_TYPE_TIMESTAMP | SQL_C_TYPE_TIMESTAMP | SQL_DATETIME | SQL_CODE_TIMESTAMP |
SQL_INTERVAL_MONTH | SQL_C_INTERVAL_MONTH | SQL_INTERVAL | SQL_CODE_MONTH |
SQL_INTERVAL_YEAR | SQL_C_INTERVAL_YEAR | SQL_INTERVAL | SQL_CODE_YEAR |
SQL_INTERVAL_YEAR_TO_MONTH | SQL_C_INTERVAL_YEAR_TO_MONTH | SQL_INTERVAL | SQL_CODE_YEAR_TO_MONTH |
SQL_INTERVAL_DAY | SQL_C_INTERVAL_DAY | SQL_INTERVAL | SQL_CODE_DAY |
SQL_INTERVAL_HOUR | SQL_C_INTERVAL_HOUR | SQL_INTERVAL | SQL_CODE_HOUR |
SQL_INTERVAL_MINUTE | SQL_C_INTERVAL_MINUTE | SQL_INTERVAL | SQL_CODE_MINUTE |
SQL_INTERVAL_SECOND | SQL_C_INTERVAL_SECOND | SQL_INTERVAL | SQL_CODE_SECOND |
SQL_INTERVAL_DAY_TO_HOUR | SQL_C_INTERVAL_DAY_TO_HOUR | SQL_INTERVAL | SQL_CODE_DAY_TO_HOUR |
SQL_INTERVAL_DAY_TO_MINUTE | SQL_C_INTERVAL_DAY_TO_MINUTE | SQL_INTERVAL | SQL_CODE_DAY_TO_MINUTE |
SQL_INTERVAL_DAY_TO_SECOND | SQL_C_INTERVAL_DAY_TO_SECOND | SQL_INTERVAL | SQL_CODE_DAY_TO_SECOND |
SQL_INTERVAL_HOUR_TO_MINUTE | SQL_C_INTERVAL_HOUR_TO_MINUTE | SQL_INTERVAL | SQL_CODE_HOUR_TO_MINUTE |
SQL_INTERVAL_HOUR_TO_SECOND | SQL_C_INTERVAL_HOUR_TO_SECOND | SQL_INTERVAL | SQL_CODE_HOUR_TO_SECOND |
SQL_INTERVAL_MINUTE_TO_SECOND | SQL_C_INTERVAL_MINUTE_TO_SECOND | SQL_INTERVAL | SQL_CODE_MINUTE_TO_SECOND |