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.