Share via


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