다음을 통해 공유


JetDupCursor 함수

적용 대상: Windows | Windows Server

JetDupCursor 함수

JetDupCursor 함수는 열려 있는 커서를 복제하고 중복된 커서에 대한 핸들을 반환합니다. 중복된 커서가 읽기 전용 커서인 경우 중복된 커서도 읽기 전용 커서입니다. 검색 키 생성 또는 레코드 업데이트와 관련된 상태는 중복된 커서에 복사되지 않습니다. 또한 원래 커서의 위치는 중복된 커서에 중복되지 않습니다. 중복된 커서는 항상 클러스터형 인덱스에서 열리고 해당 위치는 항상 테이블의 첫 번째 행에 있습니다.

    JET_ERR JET_API JetDupCursor(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __out         JET_TABLEID* ptableid,
      __in          JET_GRBIT grbit
    );

매개 변수

sesid

이 호출에 사용할 세션입니다.

tableid

이 호출에 사용할 커서입니다.

ptableid

tableid에 대한 포인터입니다.

grbit

다음에 사용하도록 예약됩니다.

반환 값

이 함수는 다음 반환 코드 중 하나를 사용하여 JET_ERR 데이터 형식을 반환합니다. 가능한 ESE 오류에 대한 자세한 내용은 확장 가능한 스토리지 엔진 오류오류 처리 매개 변수를 참조하세요.

반환 코드

설명

JET_errSuccess

작업이 성공적으로 완료되었습니다.

JET_errClientRequestToStopJetService

JetStopService 호출로 인해 세션과 연결된 instance 모든 작업이 중단되었으므로 작업을 완료할 수 없습니다.

JET_errInstanceUnavailable

세션과 연결된 instance 해당 데이터의 무결성을 보호하기 위해 모든 데이터에 대한 액세스를 해지해야 하는 심각한 오류가 발생하여 작업을 완료할 수 없습니다. 이 오류는 Windows XP 이상 릴리스에서만 반환됩니다.

JET_errNotInitialized

세션과 연결된 instance 아직 초기화되지 않았기 때문에 작업을 완료할 수 없습니다.

JET_errOutOfCursors

사용 가능한 커서 리소스가 없습니다.

JET_errRestoreInProgress

세션과 연결된 instance 복원 작업이 진행 중이므로 작업을 완료할 수 없습니다.

JET_errSessionSharingViolation

두 개 이상의 스레드에 대해 동시에 동일한 세션을 사용할 수 없습니다. 이 오류는 Windows XP 이상 릴리스에서만 반환됩니다.

JET_errTermInProgress

세션과 연결된 instance 종료 중이므로 작업을 완료할 수 없습니다.

성공하면 ptableid 가 중복된 커서로 설정됩니다.

실패 시 변경 내용이 없습니다. tableid의 상태는 변경되지 않습니다.

설명

중복된 커서에 복사된 전체 커서 상태가 없습니다. 현재 인덱스를 포함하여 중복된 커서의 위치는 일반적으로 지정된 커서와 다릅니다. 중복된 커서는 항상 클러스터형 인덱스와 테이블의 첫 번째 행에 반환됩니다. 테이블이 비어 있으면 중복된 커서가 행에 없습니다.

JetDupCursor로 열린 테이블은 일반적으로 JetCloseTable을 사용하여 닫아야 합니다. 이 규칙의 예외는 트랜잭션에서 JetDupCursor 가 호출되고 트랜잭션이 롤백될 때 발생합니다( JetRollback 사용). 트랜잭션을 롤백하면 커서가 자동으로 닫힙니다. 이 경우 JetCloseTable을 사용하여 테이블을 닫는 것은 오류입니다.

동시에 열 수 있는 테이블 수는 JET_paramMaxOpenTables 직접 영향을 받습니다. 자세한 내용은 시스템 매개 변수 를 참조하세요.

요구 사항

요구 사항

클라이언트

Windows Vista, Windows XP 또는 Windows 2000 Professional이 필요합니다.

서버

Windows Server 2008, Windows Server 2003 또는 Windows 2000 Server가 필요합니다.

머리글

Esent.h에서 선언되었습니다.

라이브러리

ESENT.lib를 사용합니다.

DLL

ESENT.dll 필요합니다.

참고 항목

JET_GRBIT
JET_SESID
JET_TABLEID
JetCloseTable
JetRollback
JetStopService
시스템 매개 변수