Exemplos de conversão de dados de C para SQL
Os exemplos a seguir ilustram como o driver converte dados C em dados SQL:
Identificador de tipo C | Valor de dados C | Tipo SQL identificador |
Coluna comprimento |
Dados SQL 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 um byte de terminação nula. O byte de terminação nula será necessário somente se o comprimento dos dados for SQL_NTS.
[b] Além de bytes para números, um byte é necessário para um sinal e outro byte é necessário para o ponto decimal.
[c] Os números nesta lista são os números armazenados nos campos da estrutura SQL_DATE_STRUCT.
[d] Os números nesta lista são os números armazenados nos campos da estrutura SQL_TIMESTAMP_STRUCT.