JetGotoBookmark 함수

적용 대상: Windows | Windows Server

JetGotoBookmark 함수

JetGotoBookmark 함수는 지정된 책갈피와 연결된 레코드의 인덱스 항목에 커서를 배치합니다. 책갈피는 테이블에 정의된 인덱스와 함께 사용할 수 있습니다. 레코드의 책갈피는 JetGetBookmark를 사용하여 검색할 수 있습니다.

    JET_ERR JET_API JetGotoBookmark(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __in          void* pvBookmark,
      __in          unsigned long cbBookmark
    );

매개 변수

sesid

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

tableid

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

pvBookmark

커서를 배치하는 데 사용할 책갈피가 들어 있는 버퍼입니다.

cbBookmark

버퍼의 책갈피 크기입니다.

반환 값

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

반환 코드

설명

JET_errSuccess

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

JET_errClientRequestToStopJetService

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

JET_errInstanceUnavailable

세션과 연결된 instance 해당 데이터의 무결성을 보호하기 위해 모든 데이터에 대한 액세스를 취소해야 하는 심각한 오류가 발생하여 작업을 완료할 수 없습니다.

Windows XP: 이 반환 값은 Windows XP에서 도입되었습니다.

JET_errInvalidBookmark

제공된 책갈피가 잘못되었습니다. 책갈피의 크기가 0이거나 책갈피 버퍼 포인터가 NULL이기 때문에 이 문제가 발생했을 수 있습니다.

JET_errNoCurrentRecord

커서가 보조 인덱스에 있으며 책갈피와 연결된 레코드에 대한 인덱스 항목을 찾을 수 없습니다.

JET_errNotInitialized

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

JET_errRecordDeleted

책갈피와 연결된 레코드를 찾을 수 없습니다.

JET_errRestoreInProgress

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

JET_errSessionSharingViolation

동시에 둘 이상의 스레드에 동일한 세션을 사용할 수 없습니다.

Windows XP: 이 반환 값은 Windows XP에서 도입되었습니다.

JET_errTermInProgress

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

이 함수가 성공하면 커서가 지정된 책갈피와 연결된 레코드의 인덱스 항목에 배치됩니다. 업데이트할 레코드가 준비되면 해당 업데이트가 취소됩니다. 인덱스 범위가 적용되면 해당 인덱스 범위가 취소됩니다. 커서에 대한 검색 키가 생성된 경우 해당 검색 키가 삭제됩니다. 데이터베이스 상태는 변경되지 않습니다.

이 함수가 실패하면 커서의 위치는 변경되지 않은 상태로 유지됩니다. 업데이트할 레코드가 준비되면 해당 업데이트가 취소됩니다. 인덱스 범위가 적용되면 해당 인덱스 범위가 취소됩니다. 커서에 대한 검색 키가 생성된 경우 해당 검색 키가 삭제됩니다. 데이터베이스 상태는 변경되지 않습니다.

설명

책갈피를 사용하여 인덱스에 커서를 배치하는 방법에는 두 가지가 있습니다. 첫 번째는 책갈피를 사용하여 레코드에 직접 배치하는 것입니다. 커서의 현재 인덱스가 기본 인덱스일 때 발생합니다. 이 기술은 ESENT 책갈피가 연결된 레코드의 기본 키와 동일하기 때문에 작동합니다.

책갈피를 사용하는 두 번째 방법은 해당 책갈피와 연결된 레코드에 해당하는 보조 인덱스의 항목에 배치하는 것입니다. 이 프로세스 중에 엔진은 기본 인덱스에서 책갈피를 사용하여 실제 레코드를 조회합니다. 그런 다음 레코드 데이터 및 보조 인덱스 정의를 사용하여 레코드를 가리키는 보조 인덱스로 키를 계산합니다. 그런 다음 해당 키의 인덱스 항목에 커서를 놓습니다. 커서가 하나 이상의 다중값 키 열에 대한 보조 인덱스에 있는 경우 커서는 각 키 열의 첫 번째 다중 값에 해당하는 인덱스 항목에 배치됩니다.

요구 사항

요구 사항

클라이언트

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

서버

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

머리글

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

라이브러리

ESENT.lib를 사용합니다.

DLL

ESENT.dll 필요합니다.

참고 항목

JET_ERR
JET_SESID
JET_TABLEID
JetGetBookmark