Share via


SQL에서 C로: 문자

문자 ODBC SQL 데이터 형식의 식별자는 다음과 같습니다.

  • SQL_CHAR
  • SQL_VARCHAR
  • SQL_LONGVARCHAR
  • SQL_WCHAR
  • SQL_WVARCHAR
  • SQL_WLONGVARCHAR

다음 표에서는 문자 SQL 데이터를 변환할 수 있는 ODBC C 데이터 형식을 보여줍니다. 테이블의 열 및 용어에 대한 설명은 SQL에서 C 데이터 형식으로 데이터 변환을 참조 하세요.

C 형식 식별자 테스트 TargetValuePtr StrLen_or_IndPtr SQLSTATE
SQL_C_CHAR Data <BufferLength의 바이트 길이

데이터의 >바이트 길이 = BufferLength
데이터

잘린 데이터
데이터 길이(바이트)

데이터 길이(바이트)
해당 없음

01004
SQL_C_WCHAR 데이터 <BufferLength의 문자 길이

데이터의 >문자 길이 = BufferLength
데이터

잘린 데이터
문자의 데이터 길이

문자의 데이터 길이
해당 없음

01004
SQL_C_STINYINT SQL_C_UTINYINT SQL_C_TINYINT SQL_C_SBIGINT SQL_C_UBIGINT SQL_C_SSHORT SQL_C_USHORT SQL_C_SHORT SQL_C_SLONG SQL_C_ULONG SQL_C_LONG SQL_C_NUMERIC 잘림 없이 변환된 데이터[b]

소수 자릿수 잘림으로 변환된 데이터[a]

데이터를 변환하면 소수 자릿수가 아닌 전체 자릿수가 손실됩니다.[a]

데이터가 숫자 리터럴아닙니다.[b]
데이터

잘린 데이터

Undefined

Undefined
C 데이터 형식의 바이트 수

C 데이터 형식의 바이트 수

Undefined

Undefined
해당 없음

01S07

22003

22018
SQL_C_FLOAT SQL_C_DOUBLE 데이터는 숫자가 변환되는 데이터 형식의 범위 내에 있습니다.[a]

데이터가 숫자가 변환되는 데이터 형식 범위를 벗어났습니다.[a]

데이터가 숫자 리터럴아닙니다.[b]
데이터

Undefined

Undefined
C 데이터 형식의 크기

Undefined

Undefined
해당 없음

22003

22018
SQL_C_BIT 데이터는 0 또는 1입니다.

데이터가 0보다 크고 2보다 작으며 1과 같지 않음

데이터가 0보다 작거나 2보다 크거나 같음

데이터가 숫자 리터럴이 아닙니다.
데이터

잘린 데이터

Undefined

Undefined
1[b]

1[b]

Undefined

Undefined
해당 없음

01S07

22003

22018
SQL_C_BINARY 데이터의 <바이트 길이 = BufferLength

Data >BufferLength의 바이트 길이
데이터

잘린 데이터
데이터 길이(바이트)

데이터 길이
해당 없음

01004
SQL_C_TYPE_DATE 데이터 값은 유효한 date-value[a]

데이터 값은 유효한 타임스탬프-값입니다. 시간 부분은 0입니다.[a]

데이터 값은 유효한 타임스탬프-값입니다. 시간 부분은 0이 아닌 값입니다.[a],[c]

데이터 값이 유효한 date-value 또는 timestamp-value가 아닙니다.[a]
데이터

데이터

잘린 데이터

Undefined
6[b]

6[b]

6[b]

Undefined
해당 없음

해당 없음

01S07

22018
SQL_C_TYPE_TIME 데이터 값은 유효한 시간 값이며 소수 자릿수 초 값은 0[a]

데이터 값은 유효한 타임스탬프 값 또는 유효한 시간 값입니다. 소수 자릿수 초 부분은 0[a],[d]

데이터 값은 유효한 타임스탬프-값입니다. 소수 자릿수 초 부분은 0이 아닌 경우[a],[d],[e]

데이터 값이 유효한 시간-값 또는 timestamp-value가 아닙니다.[a]
데이터

데이터

잘린 데이터

Undefined
6[b]

6[b]

6[b]

Undefined
해당 없음

해당 없음

01S07

22018
SQL_C_TYPE_TIMESTAMP 데이터 값은 유효한 타임스탬프 값 또는 유효한 시간 값입니다. 소수 자릿수 초 부분은 잘리지 않습니다.[a]

데이터 값은 유효한 타임스탬프 값 또는 유효한 시간 값입니다. 소수 자릿수 초 부분이 잘립니다.[a]

데이터 값은 유효한 date-value[a]

데이터 값이 유효한 시간 값입니다.[a]

데이터 값이 유효한 날짜-값, 시간 값 또는 타임스탬프 값이 아닙니다.[a]
데이터

잘린 데이터

Data[f]

Data[g]

Undefined
16[b]

16[b]

16[b]

16[b]

Undefined
해당 없음

01S07

해당 없음

해당 없음

22018
모든 C 간격 형식 데이터 값은 유효한 간격 값이며 잘림 없음

데이터 값은 유효한 간격 값입니다. 하나 이상의 후행 필드를 잘림

데이터는 유효한 간격입니다. 선행 필드의 정밀도가 손실됨

데이터 값이 유효한 간격 값이 아닙니다.
데이터

잘린 데이터

Undefined

Undefined
데이터 길이(바이트)

데이터 길이(바이트)

Undefined

Undefined
해당 없음

01S07

22015

22018

[a] 이 변환에서는 BufferLength이 무시됩니다. 드라이버는 *TargetValuePtr 의 크기가 C 데이터 형식의 크기라고 가정합니다.

[b] 해당 C 데이터 형식의 크기입니다.

[c] 타임스탬프-값시간 부분이 잘립니다.

[d] 타임스탬프-값날짜 부분은 무시됩니다.

[e] 타임스탬프의 소수 자릿수 초 부분이 잘립니다.

[f] 타임스탬프 구조의 시간 필드가 0으로 설정됩니다.

[g] 타임스탬프 구조의 날짜 필드가 현재 날짜로 설정됩니다.

추가 공백

SQL 문자 데이터가 다음 형식으로 변환될 때 선행 및 후행 공백은 무시됩니다.

  • 날짜
  • numeric
  • 시간
  • timestamp
  • interval C 데이터