SQLBindCol
일반적으로 SQLBindCol 을 사용하여 데이터 변환의 영향을 고려합니다. 바인딩 변환은 클라이언트 프로세스입니다. 예를 들어 문자 열에 바인딩된 부동 소수점 값을 검색하면 행이 인출될 때 드라이버가 부동 소수점 수에서 문자로의 변환을 로컬로 수행합니다. Transact-SQL CONVERT 함수를 사용하여 서버에 데이터 변환 비용을 배치할 수 있습니다.
SQL Server instance 단일 문 실행에서 여러 결과 행 집합을 반환할 수 있습니다. 이 경우 각 결과 집합은 개별적으로 바인딩해야 합니다. 여러 결과 집합에 대한 바인딩에 대한 자세한 내용은 SQLMoreResults를 참조하세요.
개발자는 TargetType 값을 SQL_C_BINARY
사용하여 SQL Server 특정 C 데이터 형식에 열을 바인딩할 수 있습니다. SQL Server 특정 형식에 바인딩된 열은 이식할 수 없습니다. 정의된 SQL Server 특정 ODBC C 데이터 형식은 DB-Library의 형식 정의와 일치하며 DB-Library 애플리케이션을 포팅하는 개발자는 이 기능을 활용할 수 있습니다.
데이터 잘림 보고는 SQL Server Native Client ODBC 드라이버에 비용이 많이 드는 프로세스입니다. 모든 바인딩된 데이터 버퍼의 너비가 반환되는 데이터를 수용할 만큼 넓으면 잘림을 피할 수 있습니다. 문자 데이터의 경우 문자열 종료에 기본 드라이버 동작이 사용될 때는 문자열 종결자를 수용하기 위한 공간도 너비에 포함해야 합니다. 예를 들어 SQL Server char(5) 열을 5자의 배열에 바인딩하면 가져온 모든 값에 대해 잘림이 발생합니다. 그러나 이 열을 6개 문자의 배열에 바인딩하면 Null 종결자를 저장할 문자 요소가 제공되므로 잘림이 발생하지 않습니다. SQLGetData 를 사용하여 잘리지 않고 긴 문자 및 이진 데이터를 효율적으로 검색할 수 있습니다.
큰 값 데이터 형식의 경우 사용자가 제공한 버퍼가 열 SQL_SUCCESS_WITH_INFO
의 전체 값을 보유할 만큼 크지 않으면 가 반환되고 "문자열 데이터; 오른쪽 잘림" 경고가 발생합니다. StrLen_or_IndPtr
인수에는 버퍼에 저장된 문자/바이트의 수가 포함됩니다.
향상된 날짜 및 시간 기능에 대한 SQLBindCol 지원
날짜/시간 형식의 결과 열 값은 SQL에서 C로 변환에 설명된 대로 변환됩니다. 시간 및 datetimeoffset 열을 해당 구조체(SQL_SS_TIME2_STRUCT
및 SQL_SS_TIMESTAMPOFFSET_STRUCT)로 검색하려면 TargetType을 또는 SQL_C_BINARY
로 SQL_C_DEFAULT
지정해야 합니다.
자세한 내용은 날짜 및 시간 개선 사항(ODBC)을 참조하세요.
큰 CLR UDT에 대한 SQLBindCol 지원
SQLBindCol 은 큰 CLR UDT(사용자 정의 형식)를 지원합니다. 자세한 내용은 ODBC(대규모 CLR User-Defined 형식)를 참조하세요.