C에서 SQL로의 데이터 변환 예제
다음 예제에서는 드라이버가 C 데이터를 SQL 데이터로 변환하는 방법을 보여 줍니다.
C 형식 식별자 | C 데이터 값 | SQL 형식 식별자 |
Column length |
SQL data value |
SQLSTATE |
---|---|---|---|---|---|
SQL_C_CHAR | abcdef\0[a] | SQL_CHAR | 6 | abcdef | 해당 없음 |
SQL_C_CHAR | abcdef\0[a] | SQL_CHAR | 5 | Abcde | 22001 |
SQL_C_CHAR | 1234.56\0[a] | SQL_DECIMAL | 8[b] | 1234.56 | 해당 없음 |
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 | 해당 없음 | 1234.56 | 해당 없음 |
SQL_C_FLOAT | 1234.56 | SQL_INTEGER | 해당 없음 | 1234 | 22001 |
SQL_C_FLOAT | 1234.56 | SQL_TINYINT | 해당 없음 | ---- | 22003 |
SQL_C_TYPE_DATE | 1992,12,31[c] | SQL_CHAR | 10 | 1992-12-31 | 해당 없음 |
SQL_C_TYPE_DATE | 1992,12,31[c] | SQL_CHAR | 9 | ---- | 22003 |
SQL_C_TYPE_DATE | 1992,12,31[c] | SQL_TIMESTAMP | 해당 없음 | 1992-12-31 00:00:00.0 | 해당 없음 |
SQL_C_TYPE_TIMESTAMP | 1992,12,31, 23,45,55, 1200000000[d] | SQL_CHAR | 22 | 1992-12-31 23:45:55.12 | 해당 없음 |
SQL_C_TYPE_TIMESTAMP | 1992,12,31, 23,45,55, 1200000000[d] | SQL_CHAR | 21 | 1992-12-31 23:45:55.1 | 22001 |
SQL_C_TYPE_TIMESTAMP | 1992,12,31, 23,45,55, 1200000000[d] | SQL_CHAR | 18 | ---- | 22003 |
[a] "\0"은 null 종료 바이트를 나타냅니다. null 종료 바이트는 데이터의 길이가 SQL_NTS 경우에만 필요합니다.
[b] 숫자의 바이트 외에도 기호에 1바이트가 필요하고 소수점에는 다른 바이트가 필요합니다.
[c] 이 목록의 숫자는 SQL_DATE_STRUCT 구조체의 필드에 저장된 숫자입니다.
[d] 이 목록의 숫자는 SQL_TIMESTAMP_STRUCT 구조체의 필드에 저장된 숫자입니다.