Share via


SQL à C : Binary

Les identificateurs des types de données SQL ODBC binaires sont les suivants :

SQL_BINARY

SQL_VARBINARY

SQL_LONGVARBINARY

Le tableau suivant montre les types de données ODBC C vers lesquels les données SQL binaires peuvent être converties. Pour obtenir une explication des colonnes et des termes de la table, consultez Conversion de données de SQL en types de données C.

Identificateur de type C Test *TargetValuePtr *StrLen_or_IndPtr SQLSTATE
SQL_C_CHAR (Longueur en octets des données) * 2 <BufferLength

(Longueur en octets des données) * 2 >= BufferLength
Données

Données tronquées
Longueur des données en octets

Longueur des données en octets
n/a

01004
SQL_C_WCHAR (Longueur des caractères des données) * 2 <BufferLength

(Longueur des caractères des données) * 2 >= BufferLength
Données

Données tronquées
Longueur des données en caractères

Longueur des données en caractères
n/a

01004
SQL_C_BINARY Longueur en octets des données <= BufferLength

Longueur en octets des données >BufferLength
Données

Données tronquées
Longueur des données en octets

Longueur des données en octets
n/a

01004

Lorsque des données SQL binaires sont converties en données de caractère C, chaque octet (8 bits) des données sources est représenté sous la forme de deux caractères ASCII. Ces caractères sont la représentation en caractères ASCII du nombre dans sa forme hexadécimale. Par exemple, un 00000001 binaire est converti en « 01 » et un 11111111 binaire est converti en « FF ».

Le pilote convertit toujours des octets individuels en paires de chiffres hexadécimaux et termine la chaîne de caractères avec un octet null. Pour cette raison, si BufferLength est pair et est inférieur à la longueur des données converties, le dernier octet de la mémoire tampon *TargetValuePtr n’est pas utilisé. (Les données converties nécessitent un nombre pair d’octets, l’avant-dernier octet est un octet Null et le dernier octet ne peut pas être utilisé.)

Notes

Les développeurs d’applications sont découragés de lier des données SQL binaires à un type de données C caractère. Cette conversion est généralement inefficace et lente.