커서 동작
ODBC는 커서의 스크롤 가능 여부 및 민감도를 지정하여 커서의 동작을 지정하는 ISO 옵션을 지원합니다. 이러한 동작을 지정하려면 SQLSetStmtAttr을 호출할 때 SQL_ATTR_CURSOR_SCROLLABLE 및 SQL_ATTR_CURSOR_SENSITIVITY 옵션을 설정합니다. SQL Server Native Client ODBC 드라이버는 다음과 같은 특징을 가진 서버 커서를 요청하여 이러한 옵션을 구현합니다.
커서 동작 설정 |
필요한 서버 커서 특징 |
---|---|
SQL_SCROLLABLE 및 SQL_SENSITIVE |
키 집합 커서 및 버전 기반 낙관적 동시성 |
SQL_SCROLLABLE 및 SQL_INSENSITIVE |
정적 커서 및 읽기 전용 동시성 |
SQL_SCROLLABLE 및 SQL_UNSPECIFIED |
정적 커서 및 읽기 전용 동시성 |
SQL_NONSCROLLABLE 및 SQL_SENSITIVE |
정방향 전용 커서 및 버전 기반 낙관적 동시성 |
SQL_NONSCROLLABLE 및 SQL_INSENSITIVE |
기본 결과 집합(정방향 전용, 읽기 전용) |
SQL_NONSCROLLABLE 및 SQL_UNSPECIFIED |
기본 결과 집합(정방향 전용, 읽기 전용) |
버전 기반 낙관적 동시성을 사용하려면 기본 테이블에 timestamp 열이 있어야 합니다. timestamp 열이 없는 테이블에 버전 기반 낙관적 동시성 제어를 요청하면 서버가 값 기반 낙관적 동시성을 사용합니다.
스크롤 가능 여부
SQL_ATTR_CURSOR_SCROLLABLE이 SQL_SCROLLABLE로 설정되면 커서는 SQLFetchScroll의 FetchOrientation 매개 변수에 각기 다른 값을 지원합니다. SQL_ATTR_CURSOR_SCROLLABLE이 SQL_NONSCROLLABLE로 설정되면 커서는 SQL_FETCH_NEXT에 FetchOrientation 값만 지원합니다.
민감도
SQL_ATTR_CURSOR_SENSITIVITY가 SQL_SENSITIVE로 설정되면 커서는 현재 사용자가 수행하거나 다른 사용자가 커밋한 데이터 수정 내용을 반영합니다. SQL_ATTR_CURSOR_SENSITIVITY가 SQL_INSENSITIVE로 설정되면 커서는 데이터 수정 내용을 반영하지 않습니다.