Ejemplos de conversión de datos de C en SQL
En los ejemplos siguientes se muestra cómo el controlador convierte los datos de C en datos SQL:
Identificador de tipo de C | Valor de datos de C | Tipo SQL identificador |
Columna length |
SQL data value |
SQLSTATE |
---|---|---|---|---|---|
SQL_C_CHAR | abcdef\0[a] | SQL_CHAR | 6 | abcdef | N/D |
SQL_C_CHAR | abcdef\0[a] | SQL_CHAR | 5 | Abcde | 22001 |
SQL_C_CHAR | 1234.56\0[a] | SQL_DECIMAL | 8[b] | 1234.56 | N/D |
SQL_C_CHAR | 1234.56\0[a] | SQL_DECIMAL | 7[b] | 1234.5 | 22001 |
SQL_C_CHAR | 1234.56\0[a] | SQL_DECIMAL | 4 | ---- | 22003 |
SQL_C_FLOAT | 1234.56 | SQL_FLOAT | N/D | 1234.56 | N/D |
SQL_C_FLOAT | 1234.56 | SQL_INTEGER | N/D | 1234 | 22001 |
SQL_C_FLOAT | 1234.56 | SQL_TINYINT | N/D | ---- | 22003 |
SQL_C_TYPE_DATE | 1992,12,31[c] | SQL_CHAR | 10 | 1992-12-31 | N/D |
SQL_C_TYPE_DATE | 1992,12,31[c] | SQL_CHAR | 9 | ---- | 22003 |
SQL_C_TYPE_DATE | 1992,12,31[c] | SQL_TIMESTAMP | N/D | 1992-12-31 00:00:00.0 | N/D |
SQL_C_TYPE_TIMESTAMP | 1992,12,31, 23,45,55, 120000000[d] | SQL_CHAR | 22 | 1992-12-31 23:45:55.12 | N/D |
SQL_C_TYPE_TIMESTAMP | 1992,12,31, 23,45,55, 120000000[d] | SQL_CHAR | 21 | 1992-12-31 23:45:55.1 | 22001 |
SQL_C_TYPE_TIMESTAMP | 1992,12,31, 23,45,55, 120000000[d] | SQL_CHAR | 18 | ---- | 22003 |
[a] "\0" representa un byte de terminación NULL. El byte de terminación null solo es necesario si la longitud de los datos es SQL_NTS.
[b] Además de bytes para números, se requiere un byte para un signo y se requiere otro byte para el separador decimal.
[c] Los números de esta lista son los números almacenados en los campos de la estructura SQL_DATE_STRUCT.
[d] Los números de esta lista son los números almacenados en los campos de la estructura SQL_TIMESTAMP_STRUCT.