다음을 통해 공유


ODBC 정적 커서

정적 커서는 결과 집합이 정적으로 표시되는 커서입니다. 일반적으로 커서를 연 후 결과 집합의 멤버 자격, 순서 또는 값에 대한 변경 내용을 검색하지 않습니다. 예를 들어 정적 커서가 행을 가져오고 다른 애플리케이션이 해당 행을 업데이트한다고 가정합니다. 정적 커서가 행을 다시 설정하면 다른 애플리케이션에서 변경한 내용에도 불구하고 표시되는 값은 변경되지 않습니다.

정적 커서는 자체 업데이트, 삭제 및 삽입을 검색할 수 있지만 이 작업을 수행할 필요는 없습니다. 특정 정적 커서가 이러한 변경 내용을 감지하는지 여부는 SQLGetInfo의 SQL_STATIC_SENSITIVITY 옵션을 통해 보고됩니다. 정적 커서는 다른 업데이트, 삭제 및 삽입을 검색하지 않습니다.

SQL_ATTR_ROW_STATUS_PTR 문 특성으로 지정된 행 상태 배열에는 모든 행에 대한 SQL_ROW_SUCCESS, SQL_ROW_SUCCESS_WITH_INFO 또는 SQL_ROW_ERROR 포함될 수 있습니다. 커서가 이러한 변경 내용을 검색할 수 있다고 가정하고 커서에서 업데이트, 삭제 또는 삽입한 행에 대한 SQL_ROW_UPDATED, SQL_ROW_DELETED 또는 SQL_ROW_ADDED 반환합니다.

정적 커서는 일반적으로 결과 집합의 행을 잠그거나 결과 집합의 복사본 또는 스냅샷 만들어 구현됩니다. 행 잠금은 비교적 쉽게 수행할 수 있지만 동시성을 크게 줄이는 단점이 있습니다. 복사본을 만들면 동시성이 향상되고 커서가 복사본을 수정하여 자체 업데이트, 삭제 및 삽입을 추적할 수 있습니다. 그러나 복사본을 만드는 데 더 많은 비용이 들며 다른 사용자가 데이터를 변경하므로 기본 데이터와 다를 수 있습니다.