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 데이터 형식에 바인딩하지 않는 것이 좋습니다. 이 변환은 일반적으로 비효율적이며 느립니다.