JetSeek 함수
적용 대상: Windows | Windows Server
JetSeek 함수
JetSeek 함수는 커서의 검색 키 및 지정된 같지 않음에 지정된 검색 조건과 일치하는 인덱스 항목에 커서를 효율적으로 배치합니다. 검색 키는 이전에 JetMakeKey를 사용하여 생성되었어야 합니다.
JET_ERR JET_API JetSeek(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_GRBIT grbit
);
매개 변수
sesid
이 호출에 사용할 세션입니다.
tableid
이 호출에 사용할 커서입니다.
grbit
이 호출에 사용할 옵션이 포함된 비트 그룹입니다. Grbit 은 0이 아니어야 하며 다음 표에 나열된 값 중 하나 이상을 포함해야 합니다.
값 |
의미 |
---|---|
JET_bitCheckUniqueness |
검색 키와 일치하는 인덱스 항목이 정확히 1개 있다고 저렴하게 확인할 수 있는 경우 특수 오류 코드(JET_wrnUniqueKey)가 반환됩니다. JET_bitSeekEQ 지정하지 않으면 이 옵션은 무시됩니다. 이 옵션은 Windows Server 2003 이상 릴리스에서만 사용할 수 있습니다. |
JET_bitSeekEQ |
커서는 검색 키와 정확히 일치하는 인덱스 시작 부분과 가장 가까운 인덱스 항목에 배치됩니다. 인덱스의 시작은 해당 인덱스의 첫 번째 레코드로 이동할 때 발견되는 인덱스 항목입니다. 인덱스의 시작은 인덱스의 하위 끝과 동일하지 않으므로 인덱스에 있는 키 열의 정렬 순서에 따라 변경할 수 있습니다. 와일드카드 옵션을 사용하여 JetMakeKey 를 사용하여 생성된 검색 키와 함께 이 옵션을 사용하는 것은 의미가 없습니다. |
JET_bitSeekGE |
커서는 검색 조건과 정확히 일치하는 인덱스 항목보다 크거나 같은 인덱스 시작 부분에 가장 가까운 인덱스 항목에 배치됩니다. 인덱스의 시작은 해당 인덱스의 첫 번째 레코드로 이동할 때 발견되는 인덱스 항목입니다. 인덱스의 시작은 인덱스의 하위 끝과 동일하지 않으므로 인덱스에 있는 키 열의 정렬 순서에 따라 변경할 수 있습니다. 인덱스 끝에 가장 가까운 인덱스 항목을 찾기 위한 와일드카드 옵션을 사용하여 JetMakeKey 를 사용하여 생성된 검색 키와 함께 이 옵션을 사용하는 것은 의미가 없습니다. |
JET_bitSeekGT |
커서는 검색 조건과 정확히 일치하는 인덱스 항목보다 큰 인덱스 시작 부분에 가장 가까운 인덱스 항목에 배치됩니다. 인덱스의 시작은 해당 인덱스의 첫 번째 레코드로 이동할 때 발견되는 인덱스 항목입니다. 인덱스의 시작은 인덱스의 하위 끝과 동일하지 않으므로 인덱스에 있는 키 열의 정렬 순서에 따라 변경할 수 있습니다. 인덱스의 시작 부분에 가장 가까운 인덱스 항목을 찾기 위한 와일드카드 옵션을 사용하여 JetMakeKey 를 사용하여 생성된 검색 키와 함께 이 옵션을 사용하는 것은 의미가 없습니다. |
JET_bitSeekLE |
커서는 검색 조건과 정확히 일치하는 인덱스 항목보다 작거나 같은 인덱스 끝에 가장 가까운 인덱스 항목에 배치됩니다. 인덱스의 끝은 해당 인덱스의 마지막 레코드로 이동할 때 발견되는 인덱스 항목입니다. 인덱스의 끝은 인덱스에 있는 키 열의 정렬 순서에 따라 변경 될 수 있는 인덱스의 하이 엔드와 동일 하지 않습니다. 인덱스의 시작 부분에 가장 가까운 인덱스 항목을 찾기 위한 와일드카드 옵션을 사용하여 JetMakeKey 를 사용하여 생성된 검색 키와 함께 이 옵션을 사용하는 것은 의미가 없습니다. |
JET_bitSeekLT |
커서는 검색 조건과 정확히 일치하는 인덱스 항목보다 작은 인덱스 끝에 가장 가까운 인덱스 항목에 배치됩니다. 인덱스의 끝은 해당 인덱스의 마지막 레코드로 이동할 때 발견되는 인덱스 항목입니다. 인덱스의 끝은 인덱스에 있는 키 열의 정렬 순서에 따라 변경 될 수 있는 인덱스의 하이 엔드와 동일 하지 않습니다. 인덱스 끝에 가장 가까운 인덱스 항목을 찾기 위한 와일드카드 옵션을 사용하여 JetMakeKey 를 사용하여 생성된 검색 키와 함께 이 옵션을 사용하는 것은 의미가 없습니다. |
JET_bitSetIndexRange |
검색 키와 정확히 일치하는 모든 키에 대해 인덱스 범위가 자동으로 설정됩니다. 결과 인덱스 범위는 JET_bitRangeInclusive 및 JET_bitRangeUpperLimit 옵션을 사용하여 JetSetIndexRange 를 호출하여 생성된 것과 동일합니다. 자세한 내용은 JetSetIndexRange 를 참조하세요. 동일한 검색 조건과 일치하는 모든 인덱스 항목을 검색하는 편리한 방법입니다. JET_bitSeekEQ 지정하지 않으면 이 옵션은 무시됩니다. |
반환 값
이 함수를 사용하면 이 API에 정의된 모든 JET_ERRs 반환할 수 있습니다. Jet 오류에 대한 자세한 내용은 확장 가능한 스토리지 엔진 오류 및 오류 처리 매개 변수를 참조하세요.
반환 코드 |
설명 |
---|---|
JET_errSuccess |
작업이 성공적으로 완료되었습니다. JetSeek의 경우 검색 조건과 정확히 일치하는 인덱스 항목이 발견되었음을 의미합니다. |
JET_errClientRequestToStopJetService |
JetStopService 호출로 인해 세션과 연결된 instance 모든 작업이 중단되었으므로 작업을 완료할 수 없습니다. |
JET_errInstanceUnavailable |
세션과 연결된 instance 해당 데이터의 무결성을 보호하기 위해 모든 데이터에 대한 액세스를 해지해야 하는 심각한 오류가 발생하여 작업을 완료할 수 없습니다. 이 오류는 Windows XP 이상 릴리스에서만 반환됩니다. |
JET_errKeyNotMade |
커서에 대한 현재 검색 키가 없습니다. JetSeek 에서는 인덱스 항목을 찾는 데 사용되는 검색 조건에 커서에 유효한 검색 키가 있어야 합니다. |
JET_errNotInitialized |
세션과 연결된 instance 아직 초기화되지 않았기 때문에 작업을 완료할 수 없습니다. |
JET_errRecordNotFound |
검색 조건과 일치하는 인덱스 항목을 찾을 수 없습니다. |
JET_errRestoreInProgress |
세션과 연결된 instance 복원 작업이 진행 중이므로 작업을 완료할 수 없습니다. |
JET_wrnSeekNotEqual |
검색 조건과 일치하는 인덱스 항목이 발견되었습니다. 그러나 해당 인덱스 항목은 정확히 일치하지 않았습니다. |
JET_errSessionSharingViolation |
동시에 둘 이상의 스레드에 동일한 세션을 사용할 수 없습니다. 이 오류는 Windows XP 이상 릴리스에서만 반환됩니다. |
JET_errTermInProgress |
세션과 연결된 instance 종료 중이므로 작업을 완료할 수 없습니다. |
JET_wrnUniqueKey |
검색 조건과 정확히 일치하는 인덱스 항목이 정확히 하나 발견되었습니다. 이 오류는 JET_bitSeekCheckUniqueness 지정된 경우에만 반환되며 일치하는 인덱스 항목이 검색 조건과 정확히 일치하는 유일한 인덱스 항목인지 확인하는 것이 저렴합니다. 이 오류는 Windows Server 2003 이상 릴리스에서만 반환됩니다. |
성공하면 검색 조건과 일치하는 인덱스 항목에 커서가 배치됩니다. 레코드를 업데이트할 준비가 되면 해당 업데이트가 취소됩니다. 인덱스 범위가 적용되면 해당 인덱스 범위가 취소됩니다. 커서에 대한 검색 키가 생성된 경우 해당 검색 키가 삭제됩니다. 데이터베이스 상태는 변경되지 않습니다. 여러 인덱스 항목의 값이 같으면 인덱스의 시작 부분에 가장 가까운 항목이 항상 선택됩니다.
실패 시 JET_errRecordNotFound 반환되지 않는 한 커서의 위치는 변경되지 않은 상태로 유지됩니다. 이 경우 커서는 해당 커서의 검색 키에 지정된 검색 조건과 일치하는 인덱스 항목과 지정된 같지 않음이 있는 위치에 배치됩니다. 커서는 해당 위치를 기준으로 이동할 수 있지만 유효한 인덱스 항목에는 없습니다. 레코드를 업데이트할 준비가 되면 해당 업데이트가 취소됩니다. 인덱스 범위가 적용되면 해당 인덱스 범위가 취소됩니다. 커서에 대한 검색 키가 생성된 경우 해당 검색 키가 삭제됩니다. 데이터베이스 상태는 변경되지 않습니다.
요구 사항
요구 사항 | 값 |
---|---|
클라이언트 |
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_GRBIT
JET_SESID
JET_TABLEID
JetMakeKey
JetSetIndexRange
JetStopService