Share via


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.