다음을 통해 공유


SQL에서 C로의 데이터 변환 예제

다음 표에 나와 있는 예제에서는 드라이버가 SQL 데이터를 C 데이터로 변환하는 방법을 보여 줍니다.

SQL 형식

식별자
SQL data

value
C 형식

식별자
Buffer

length
*TargetValuePtr SQLSTATE
SQL_CHAR abcdef SQL_C_CHAR 7 abcdef\0[a] 해당 없음
SQL_CHAR abcdef SQL_C_CHAR 6 abcde\0[a] 01004
SQL_DECIMAL 1234.56 SQL_C_CHAR 8 1234.56\0[a] 해당 없음
SQL_DECIMAL 1234.56 SQL_C_CHAR 5 1234\0[a] 01004
SQL_DECIMAL 1234.56 SQL_C_CHAR 4 ---- 22003
SQL_DECIMAL 1234.56 SQL_C_FLOAT 무시 1234.56 해당 없음
SQL_DECIMAL 1234.56 SQL_C_SSHORT 무시 1234 01S07
SQL_DECIMAL 1234.56 SQL_C_STINYINT 무시 ---- 22003
SQL_DOUBLE 1.2345678 SQL_C_DOUBLE 무시 1.2345678 해당 없음
SQL_DOUBLE 1.2345678 SQL_C_FLOAT 무시 1.234567 해당 없음
SQL_DOUBLE 1.2345678 SQL_C_STINYINT 무시 6 해당 없음
SQL_TYPE_DATE 1992-12-31 SQL_C_CHAR 11 1992-12-31\0[a] 해당 없음
SQL_TYPE_DATE 1992-12-31 SQL_C_CHAR 10 ----- 22003
SQL_TYPE_DATE 1992-12-31 SQL_C_TIMESTAMP 무시 1992,12,31, 0,0,0,0[b] 해당 없음
SQL_TYPE_TIMESTAMP 1992-12-31 23:45:55.12 SQL_C_CHAR 23 1992-12-31 23:45:55.12\0[a] 해당 없음
SQL_TYPE_TIMESTAMP 1992-12-31 23:45:55.12 SQL_C_CHAR 22 1992-12-31 23:45:55.1\0[a] 01004
SQL_TYPE_TIMESTAMP 1992-12-31 23:45:55.12 SQL_C_CHAR 18 ---- 22003

[a] "\0"은 null 종료 바이트를 나타냅니다. 드라이버는 항상 SQL_C_CHAR 데이터를 null로 종료합니다.

[b] 이 목록의 숫자는 TIMESTAMP_STRUCT 구조체의 필드에 저장된 숫자입니다.