Longueur en octets du transfert

La longueur de transfert d’octets d’une colonne est le nombre maximal d’octets retournés à l’application lorsque des données sont transférées vers son type de données C par défaut. Pour les données de caractères, la longueur de l’octet de transfert n’inclut pas d’espace pour le caractère d’arrêt Null. La longueur de transfert d’octets d’une colonne peut être différente du nombre d’octets requis pour stocker les données sur la source de données.

La longueur d’octet de transfert définie pour chaque type de données SQL ODBC est indiquée dans le tableau suivant.

Identificateur de type SQL Longueur
Tous les types de caractères[a] Longueur définie ou maximale (pour le type de variable) de la colonne en octets. Il s’agit de la même valeur que le champ de descripteur SQL_DESC_OCTET_LENGTH.
SQL_DECIMAL
SQL_NUMERIC
Nombre d’octets requis pour contenir la représentation de caractères de ces données si le jeu de caractères est ANSI, et deux fois ce nombre si le jeu de caractères est UNICODE. Il s’agit du nombre maximal de chiffres plus deux, car les données sont retournées sous forme de chaîne de caractères et des caractères sont nécessaires pour les chiffres, un signe et une virgule décimale. Par exemple, la longueur de transfert d’une colonne définie comme NUMERIC(10,3) est de 12.
SQL_TINYINT 1
SQL_SMALLINT 2
SQL_INTEGER 4
SQL_BIGINT 8
SQL_REAL 4
SQL_FLOAT 8
SQL_DOUBLE 8
SQL_BIT 1
Tous les types binaires[a] Nombre d’octets requis pour contenir le nombre de caractères défini (pour les types fixes) ou maximal (pour les types variables).
SQL_TYPE_DATE
SQL_TYPE_TIME
6 (taille de la structure SQL_DATE_STRUCT ou SQL_TIME_STRUCT).
SQL_TYPE_TIMESTAMP 16 (taille de la structure SQL_TIMESTAMP_STRUCT).
Tous les types de données d’intervalle 34 (taille de la structure d’intervalles).
SQL_GUID 16 (taille de la structure GUID).

[a] Si le pilote ne peut pas déterminer la longueur de la colonne ou du paramètre pour les types de variables, il retourne SQL_NO_TOTAL.