다음을 통해 공유


SQL에서 C로: 이진

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

SQL_BINARY

SQL_VARBINARY

SQL_LONGVARBINARY

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

C 형식 식별자 테스트 *TargetValuePtr *StrLen_or_IndPtr SQLSTATE
SQL_C_CHAR (데이터의 바이트 길이) * 2 BufferLength <

(데이터의 바이트 길이) * 2 >= BufferLength
데이터

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

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

01004
SQL_C_WCHAR (데이터의 문자 길이) * 2 BufferLength <

(데이터의 문자 길이) * 2 >= BufferLength
데이터

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

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

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

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

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

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

01004

이진 SQL 데이터가 문자 C 데이터로 변환되면 원본 데이터의 각 바이트(8비트)가 두 개의 ASCII 문자로 표시됩니다. 이러한 문자는 16진수 형식의 숫자의 ASCII 문자 표현입니다. 예를 들어 이진 00000001 "01"로 변환되고 이진 11111111 "FF"로 변환됩니다.

드라이버는 항상 개별 바이트를 16진수 쌍으로 변환하고 null 바이트로 문자열을 종료합니다. 따라서 BufferLength가 짝수이고 변환된 데이터의 길이보다 작은 경우 *TargetValuePtr 버퍼의 마지막 바이트는 사용되지 않습니다. 변환된 데이터에는 짝수 바이트가 필요하고, 다음 바이트는 null 바이트이고, 마지막 바이트는 사용할 수 없습니다.)

참고 항목

애플리케이션 개발자는 이진 SQL 데이터를 문자 C 데이터 형식에 바인딩하지 않는 것이 좋습니다. 이 변환은 일반적으로 비효율적이며 느립니다.