다음을 통해 공유


ODBC 커서 라이브러리

일부 ODBC 드라이버는 기본 커서 설정만 지원합니다. 이러한 드라이버는 SQLSetPos와 같은 위치 커서 작업도 지원하지 않습니다. ODBC 커서 라이브러리는 일반적으로 블록 또는 정적 커서를 지원하지 않는 드라이버에서 블록 또는 정적 커서를 구현하는 데 사용되는 MDAC(Microsoft Data Access Components) 구성 요소입니다. 커서 라이브러리는 또한 만든 커서에 대해 배치된 UPDATE 및 DELETE 문과 SQLSetPos 를 구현합니다.

ODBC 커서 라이브러리는 ODBC 드라이버 관리자와 ODBC 드라이버 사이의 계층으로 구현됩니다. ODBC 커서 라이브러리가 로드되면 ODBC 드라이버 관리자에서 모든 커서 관련 명령을 드라이버 대신 커서 라이브러리로 라우팅합니다. 커서 라이브러리는 기본 드라이버에서 전체 결과 집합을 인출하고 결과 집합을 클라이언트에 캐시하여 커서를 구현합니다. ODBC 커서 라이브러리를 사용하는 경우 애플리케이션은 커서 라이브러리의 커서 기능으로 제한됩니다. 기본 드라이버의 추가 커서 기능에 대한 지원은 애플리케이션에서 사용할 수 없습니다.

드라이버 자체가 ODBC 커서 라이브러리보다 더 많은 커서 기능을 지원하므로 ODBC 커서 라이브러리를 SQL Server Native Client ODBC 드라이버와 함께 사용할 필요가 거의 없습니다. SQL Server Native Client ODBC 드라이버와 함께 ODBC 커서 라이브러리를 사용하는 유일한 이유는 드라이버가 서버 커서를 통해 커서 지원을 구현하고 서버 커서가 모든 SQL 문을 지원하지 않기 때문입니다. 저장 프로시저, 일괄 처리 또는 COMPUTE, COMPUTE BY, FOR BROWSE 또는 INTO가 포함된 SQL 문에 정적 커서가 필요한 경우 ODBC 커서 라이브러리를 사용합니다. 하지만 커서 라이브러리는 전체 결과 집합을 클라이언트에 캐시하여 많은 메모리가 사용되고 성능이 저하될 수 있으므로 주의해야 합니다.

애플리케이션은 SQLSetConnectAttr 를 사용하여 연결 기준으로 커서 라이브러리를 호출하여 데이터 원본에 연결하기 전에 SQL_ATTR_ODBC_CURSORS 연결 특성을 설정합니다. SQL_ATTR_ODBC_CURSORS는 다음 세 값 중 하나로 설정됩니다.

SQL_CUR_USE_ODBC
이 옵션을 SQL Server Native Client ODBC 드라이버로 설정하면 ODBC 커서 라이브러리는 SQL Server Native Client ODBC 드라이버의 네이티브 커서 지원을 재정의합니다. 커서 라이브러리에서 지원되는 커서 유형만 연결에 사용할 수 있으며 서버 커서는 사용할 수 없습니다.

SQL_CUR_USE_DRIVER
이 옵션을 설정하면 SQL Server Native Client ODBC 드라이버에 기본으로 사용되는 모든 커서 지원을 연결에 사용할 수 있습니다. ODBC 커서 라이브러리는 사용할 수 없습니다. 모든 커서가 서버 커서로 구현됩니다.

SQL_CUR_USE_IF_NEEDED
이 옵션을 설정하면 SQL Server Native Client ODBC 드라이버와 함께 사용할 때 SQL_CUR_USE_DRIVER 효과가 동일합니다. 연결 시 ODBC 드라이버 관리자는 에 연결된 ODBC 드라이버가 SQLFetchScroll의 SQL_FETCH_PRIOR 옵션을 지원하는지 테스트합니다. 드라이버가 이 옵션을 지원하지 않으면 ODBC 드라이버 관리자에서 ODBC 커서 라이브러리를 로드합니다. 드라이버가 이 옵션을 지원하면 ODBC 드라이버 관리자에서 ODBC 커서 라이브러리를 로드하지 않으며 애플리케이션이 드라이버의 기본 지원을 사용합니다. SQL Server Native Client ODBC 드라이버는 SQL_FETCH_PRIOR 지원하므로 ODBC 드라이버 관리자는 ODBC 커서 라이브러리를 로드하지 않습니다.

커서 라이브러리를 사용하면 애플리케이션이 스크롤 및 업데이트 가능한 커서는 물론 한 연결에서 활성 문을 여러 개 사용할 수 있습니다. 이 기능을 지원하려면 커서 라이브러리를 로드해야 합니다. SQLSetConnectAttr를 사용하여 커서 라이브러리를 사용하는 방법을 지정하고 SQLSetStmtAttr을 사용하여 커서 유형, 동시성 및 행 집합 크기를 지정합니다.

참고 항목

커서 구현 방법