Share via


Taille de colonne

La taille de colonne (ou de paramètre) des types de données numériques est définie comme le nombre maximal de chiffres utilisés par le type de données de la colonne ou du paramètre, ou la précision des données. Pour les types de caractères, il s’agit de la longueur en caractères des données ; pour les types de données binaires, la taille de colonne est définie comme la longueur en octets des données. Pour l’heure, l’horodatage et tous les types de données d’intervalle, il s’agit du nombre de caractères dans la représentation de caractères de ces données. La taille de colonne définie pour chaque type de données SQL concis est indiquée dans le tableau suivant.

Identificateur de type SQL Taille de colonne
Tous les types de caractères[a],[b] Taille de colonne définie ou maximale en caractères de la colonne ou du paramètre (telle que contenue dans le champ descripteur SQL_DESC_LENGTH). Par exemple, la taille de colonne d’une colonne de caractères codés sur un octet définie comme CHAR(10) est 10.
SQL_DECIMAL SQL_NUMERIC Nombre défini de chiffres. Par exemple, la précision d’une colonne définie comme NUMERIC(10,3) est de 10.
SQL_BIT[c] 1
SQL_TINYINT[c] 3
SQL_SMALLINT[c] 5
SQL_INTEGER[c] 10
SQL_BIGINT[c] 19 (s’il est signé) ou 20 (s’il n’est pas signé)
SQL_REAL[c] 7
SQL_FLOAT[c] 15
SQL_DOUBLE[c] 15
Tous les types binaires[a],[b] Longueur définie ou maximale en octets de la colonne ou du paramètre. Par exemple, la longueur d’une colonne définie comme BINARY(10) est de 10.
SQL_TYPE_DATE[c] 10 (nombre de caractères au format aaaa-mm-jj ).
SQL_TYPE_TIME[c] 8 (nombre de caractères au format hh-mm-ss ) ou 9 + s (nombre de caractères au format hh:mm:ss[.fff...], où s est la précision en secondes).
SQL_TYPE_TIMESTAMP 16 (nombre de caractères au format aaaa-mm-jj hh:mm )

19 (nombre de caractères au format aaaa-mm-jjhh:mm:ss )

or

20 + s (nombre de caractères au format aaaa-mm-jj hh:mm:ss[.fff...], où s est la précision en secondes).
SQL_INTERVAL_SECOND p est la précision de début d’intervalle et s la précision des secondes, p (si s=0) ou p+s+1 (si s>0).[ d]
SQL_INTERVAL_DAY_TO_SECOND p est la précision de début d’intervalle et s la précision des secondes, 9+p (si s=0) ou 10+p+s (si s>0).[ d]
SQL_INTERVAL_HOUR_TO_SECOND p est la précision de début d’intervalle et s est la précision des secondes, 6+p (si s=0) ou 7+p+s (si s>0).[ d]
SQL_INTERVAL_MINUTE_TO_SECOND p est la précision de début d’intervalle et s la précision des secondes, 3+p (si s=0) ou 4+p+s (si s>0).[ d]
SQL_INTERVAL_YEAR SQL_INTERVAL_MONTH SQL_INTERVAL_DAY SQL_INTERVAL_HOUR SQL_INTERVAL_MINUTE p, où p est la précision de début d’intervalle. [d]
SQL_INTERVAL_YEAR_TO_MONTH SQL_INTERVAL_DAY_TO_HOUR 3+p, où p est la précision de début d’intervalle. [d]
SQL_INTERVAL_DAY_TO_MINUTE 6+p, où p est la précision de début d’intervalle. [d]
SQL_INTERVAL_HOUR_TO_MINUTE 3+p, où p est la précision de début d’intervalle. [d]
SQL_GUID 36 (nombre de caractères au format aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeee)

[a] Pour une application ODBC 1.0 appelant SQLSetParam dans un pilote ODBC 2.0 et pour une application ODBC 2.0 appelant SQLBindParameter dans un pilote ODBC 1.0, lorsque *StrLen_or_IndPtr est SQL_DATA_AT_EXEC pour un type SQL_LONGVARCHAR ou SQL_LONGVARBINARY, ColumnSize doit être défini sur la longueur totale des données à envoyer, pas la précision définie dans ce tableau.

[b] Si le pilote ne peut pas déterminer la longueur de colonne ou de paramètre d’un type de variable, il retourne SQL_NO_TOTAL.

[c] L’argument ColumnSize de SQLBindParameter est ignoré pour ce type de données.

[d] Pour connaître les règles générales relatives à la longueur des colonnes dans les types de données d’intervalle, consultez Longueur du type de données d’intervalle, plus haut dans cette annexe.

Les valeurs retournées pour la taille de colonne (ou de paramètre) ne correspondent pas aux valeurs d’un champ de descripteur. Les valeurs peuvent provenir du champ SQL_DESC_PRECISION ou SQL_DESC_LENGTH, selon le type de données, comme indiqué dans le tableau suivant.

Type SQL Champ de descripteur correspondant à

taille de colonne ou de paramètre
Tous les types caractères et binaires LENGTH
Tous les types numériques PRECISION
Tous les types datetime et interval LENGTH
SQL_BIT LENGTH