SQLSetPos(커서 라이브러리)

Important

이 기능은 이후 Windows 버전에서 제공될 예정입니다. 새 개발 작업에서 이 기능을 사용하지 말고 현재 이 기능을 사용하는 애플리케이션을 수정할 계획입니다. 드라이버의 커서 기능을 사용하는 것이 좋습니다.

이 항목에서는 커서 라이브러리에서 SQLSetPos 함수의 사용에 대해 설명합니다. SQLSetPos에 대한 일반적인 내용은 SQLSetPos 함수를 참조하세요.

커서 라이브러리는 SQLSetPos의 Operation 인수에 대해서만 SQL_POSITION 작업을 지원합니다. LockType 인수에 대해서만 SQL_LOCK_NO_CHANGE 값을 지원합니다.

드라이버가 대량 작업을 지원하지 않는 경우 RowNumber가 0인 SQLSetPos가 호출되면 커서 라이브러리가 SQLSTATE HYC00(드라이버를 사용할 수 없음)을 반환합니다. 이 드라이버 동작은 권장되지 않습니다.

커서 라이브러리는 SQLSetPos 호출에서 SQL_UPDATE 및 SQL_DELETE 작업을 지원하지 않습니다. 커서 라이브러리는 각 바인딩된 열의 캐시에 저장된 값을 열거하는 WHERE 절을 사용하여 검색된 업데이트 또는 삭제 문을 만들어 배치된 업데이트 또는 삭제 SQL 문을 구현합니다. 자세한 내용은 위치 지정 업데이트 및 삭제 문 처리를 참조 하세요.

드라이버가 정적 커서를 지원하지 않는 경우 커서 라이브러리를 사용하는 애플리케이션은 SQLFetch가 아닌 SQLExtendedFetch 또는 SQLFetchScroll에서 가져온 행 집합에서만 SQLSetPos를 호출해야 합니다. 커서 라이브러리는 드라이버에서 SQLFetch(행 집합 크기가 1)를 반복적으로 호출하여 SQLExtendedFetch 및 SQLFetchScroll을 구현합니다. 반면 커서 라이브러리는 SQLFetch대한 호출을 드라이버로 전달합니다. 드라이버가 정적 커서를 지원하지 않을 때 SQLFetch에서 가져온 다중 행 집합에서 SQLSetPos가 호출되면 SQLSetPos가 정방향 전용 커서에서 작동하지 않으므로 호출이 실패합니다. 애플리케이션이 SQLSetStmtAttr을 호출하여 SQL_ATTR_CURSOR_TYPE SQL_CURSOR_STATIC 설정했는데 드라이버가 정적 커서를 지원하지 않더라도 커서 라이브러리가 지원하는 경우에도 발생합니다.