Partage via


C en SQL : Numérique

Les identificateurs des types de données ODBC C numériques sont les suivants :

SQL_C_STINYINT

SQL_C_SLONG

SQL_C_UTINYINT

SQL_C_ULONG

SQL_C_TINYINT

SQL_C_LONG

SQL_C_SSHORT

SQL_C_FLOAT

SQL_C_USHORT

SQL_C_DOUBLE

SQL_C_SHORT

SQL_C_NUMERIC

SQL_C_SBIGINT

SQL_C_UBIGINT

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

Identificateur de type SQL Test SQLSTATE
SQL_CHAR

SQL_VARCHAR

SQL_LONGVARCHAR
Nombre de chiffres <= longueur d’octet de colonne

Nombre de chiffres Longueur d’octet de > colonne
n/a

22001
SQL_WCHAR

SQL_WVARCHAR

SQL_WLONGVARCHAR
Nombre de caractères <= Longueur de caractères de colonne

Nombre de caractères > Longueur de caractères de colonne
n/a

22001
SQL_DECIMAL[b]

SQL_NUMERIC[b]

SQL_TINYINT[b]

SQL_SMALLINT[b]

SQL_INTEGER[b]

SQL_BIGINT[b]
Données converties sans troncation ou tronquées de chiffres fractionnaires

Données converties avec troncation de chiffres entiers
n/a

22003
SQL_REAL

SQL_FLOAT

SQL_DOUBLE
Les données se trouvent dans la plage du type de données vers lequel le nombre est en cours de conversion

Les données se trouvent en dehors de la plage du type de données vers lequel le nombre est en cours de conversion
n/a

22003
SQL_BIT Données 0 ou 1

Les données sont supérieures à 0, inférieures à 2 et non égales à 1

Les données sont inférieures à 0 ou supérieures à 2
n/a

22001

22003
SQL_INTERVAL_YEAR[a]

SQL_INTERVAL_MONTH[a]

SQL_INTERVAL_DAY[a]

SQL_INTERVAL_HOUR[a]

SQL_INTERVAL_MINUTE[a]

SQL_INTERVAL_SECOND[a]
Données non tronquées.

Données tronquées.
n/a

22015

[a] Ces conversions sont prises en charge uniquement pour les types de données numériques exacts (SQL_C_STINYINT, SQL_C_UTINYINT, SQL_C_SSHORT, SQL_C_USHORT, SQL_C_SLONG, SQL_C_ULONG ou SQL_C_NUMERIC). Ils ne sont pas pris en charge pour les types de données numériques approximatifs (SQL_C_FLOAT ou SQL_C_DOUBLE). Les types de données C numériques exacts ne peuvent pas être convertis en un type SQL d’intervalle dont la précision d’intervalle n’est pas un seul champ.

[b] Pour le cas « n/a », un pilote peut éventuellement retourner SQL_SUCCESS_WITH_INFO et 01S07 en cas de troncation fractionnaire.

Le pilote ignore la valeur longueur/indicateur lors de la conversion de données à partir des types de données C numériques et suppose que la taille de la mémoire tampon de données correspond à la taille du type de données C numérique. La valeur length/indicator est transmise dans l’argument StrLen_or_Ind dans SQLPutData et dans la mémoire tampon spécifiée avec l’argument StrLen_or_IndPtr dans SQLBindParameter. La mémoire tampon de données est spécifiée avec l’argument DataPtr dans SQLPutData et l’argument ParameterValuePtr dans SQLBindParameter.