ODBC 커서 라이브러리
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)
일부 ODBC 드라이버는 기본 커서 설정만 지원합니다. 이러한 드라이버는 SQLSetPos와 같은 배치된 커서 작업도 지원하지 않습니다. ODBC 커서 라이브러리는 일반적으로 지원하지 않는 드라이버에서 블록 또는 정적 커서를 구현하는 데 사용되는 MDAC(Microsoft Data Access Components)의 구성 요소입니다. 커서 라이브러리는 또한 만든 커서에 대해 배치된 UPDATE 및 DELETE 문과 SQLSetPos 를 구현합니다.
ODBC 커서 라이브러리는 ODBC 드라이버 관리자와 ODBC 드라이버 사이의 계층으로 구현됩니다. ODBC 커서 라이브러리가 로드되면 ODBC 드라이버 관리자는 모든 커서 관련 명령을 드라이버 대신 커서 라이브러리로 라우팅합니다. 커서 라이브러리는 기본 드라이버에서 전체 결과 집합을 가져오고 클라이언트에서 결과 집합을 캐싱하여 커서를 구현합니다. ODBC 커서 라이브러리를 사용하는 경우 애플리케이션은 커서 라이브러리의 커서 기능으로 제한됩니다. 기본 드라이버의 추가 커서 기능에 대한 지원은 애플리케이션에서 사용할 수 없습니다.
드라이버 자체가 ODBC 커서 라이브러리보다 더 많은 커서 기능을 지원하므로 SQL Server Native Client ODBC 드라이버에서 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를 사용하여 커서 유형, 동시성 및 행 집합 크기를 지정합니다.