JetGetRecordPosition 함수
적용 대상: Windows | Windows Server
JetGetRecordPosition 함수
JetGetRecordPosition 함수는 현재 인덱스에서 현재 레코드의 소수 위치를 JET_RECPOS 구조체 형식으로 반환합니다. 이 구조체는 현재 레코드 앞의 대략적인 인덱스 항목 수와 인덱스의 대략적인 총 항목 수 측면에서 소수 위치를 설명합니다.
JET_ERR JET_API JetGetRecordPosition(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out JET_RECPOS* precpos,
__in unsigned long cbRecpos
);
매개 변수
sesid
이 호출에 사용할 세션입니다.
tableid
이 호출에 사용할 커서입니다.
precpos
현재 인덱스에서 현재 레코드의 위치를 가져오는 데 사용할 분수에 대한 설명입니다.
cbRecpos
precpos에 할당된 메모리 크기입니다.
반환 값
이 함수는 다음 반환 코드 중 하나를 사용하여 JET_ERR 데이터 형식을 반환합니다. 가능한 ESE 오류에 대한 자세한 내용은 확장 가능한 스토리지 엔진 오류 및 오류 처리 매개 변수를 참조하세요.
반환 코드 |
설명 |
---|---|
JET_errSuccess |
작업이 성공적으로 완료되었습니다. |
JET_errNotInitialized |
세션과 연결된 instance 아직 초기화되지 않았기 때문에 작업을 완료할 수 없습니다. |
JET_errClientRequestToStopJetService |
JetStopService 호출로 인해 세션과 연결된 instance 모든 작업이 중단되었으므로 작업을 완료할 수 없습니다. |
JET_errInstanceUnavailable |
세션과 연결된 instance 심각한 오류가 발생하여 이 작업을 완료할 수 없습니다. 해당 데이터의 무결성을 보호하기 위해 모든 데이터에 대한 액세스를 취소해야 합니다. Windows 2000: 이 오류는 Windows 2000 운영 체제에서 반환되지 않습니다. |
JET_errInvalidParameter |
precpos에서 할당된 메모리의 크기가 충분하지 않습니다. |
JET_errNoCurrentRecord |
커서가 현재 레코드에 없으며 위치를 반환할 수 없습니다. |
JET_errRestoreInProgress |
세션과 연결된 instance 복원 작업이 진행 중이므로 작업을 완료할 수 없습니다. |
JET_errSessionSharingViolation |
동시에 둘 이상의 스레드에 동일한 세션을 사용할 수 없습니다. Windows 2000: 이 오류는 Windows 2000 운영 체제에서 반환되지 않습니다. |
JET_errTermInProgress |
세션과 연결된 instance 종료 중이므로 작업을 완료할 수 없습니다. |
성공하면 인덱스의 현재 레코드 앞에 오는 대략적인 인덱스 항목 수가 precpos-centriesLT>로 반환됩니다. precpos-centriesInRange>에서 1이 반환됩니다. 인덱스의 대략적인 항목 수는 precpos-centriesTotal>로 반환됩니다.
실패 시 precpos에 할당된 메모리는 변경되지 않습니다.
설명
이 작업은 테이블에서 업데이트가 지속적으로 발생할 때 다양한 데이터를 반환합니다. 값은 인덱스의 물리적 속성을 기반으로 하는 근사치이므로 값의 변경 내용이 업데이트에 대한 지식에 따라 항상 예상과 일치하지는 않습니다. 값은 트랜잭션 격리되지 않은 인덱스의 물리적 속성에 따라 달라지기 때문에 트랜잭션 격리는 JetGetRecordPosition 의 위치에 적용되지 않습니다.
JET_RECPOS 테이블 내의 레코드를 설명하거나 기존 레코드에 가까운 레코드의 위치를 변경하는 데 사용하면 안 됩니다. 대신 기존 레코드에 대한 책갈피를 검색한 다음 동일한 레코드의 위치를 변경하는 데 사용해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
클라이언트 |
Windows Vista, Windows XP 또는 Windows 2000 Professional이 필요합니다. |
서버 |
Windows Server 2008, Windows Server 2003 또는 Windows 2000 Server가 필요합니다. |
머리글 |
Esent.h에 선언되었습니다. |
라이브러리 |
ESENT.lib를 사용합니다. |
DLL |
ESENT.dll 필요합니다. |
참고 항목
JET_COLUMNID
JET_ERR
JET_SESID
JET_TABLEID
JET_RECPOS
JET_SETINFO
JetGotoPosition
JetStopService