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 구조체의 필드에 저장된 숫자입니다.