Функция 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 |
Невозможно выполнить операцию, так как экземпляр, связанный с сеансом, еще не инициализирован. |
JET_errClientRequestToStopJetService |
Операция не может завершиться, так как все действия экземпляра, связанного с сеансом, прекратились в результате вызова JetStopService. |
JET_errInstanceUnavailable |
Эта операция не может завершиться, так как экземпляр, связанный с сеансом, столкнулся с неустранимой ошибкой. Для защиты целостности этих данных необходимо отменить доступ ко всем данным. Windows 2000: Эта ошибка не будет возвращена операционной системой Windows 2000. |
JET_errInvalidParameter |
Размер выделенной памяти в precpos не является достаточным. |
JET_errNoCurrentRecord |
Курсор в настоящее время не находится на записи и не может вернуть позицию. |
JET_errRestoreInProgress |
Невозможно выполнить операцию, так как операция восстановления выполняется в экземпляре, связанном с сеансом. |
JET_errSessionSharingViolation |
Один и тот же сеанс нельзя использовать для нескольких потоков одновременно. Windows 2000: Эта ошибка не будет возвращена операционной системой Windows 2000. |
JET_errTermInProgress |
Операция не может завершиться, так как экземпляр, связанный с сеансом, завершает работу. |
При успешном выполнении приблизительное количество записей индекса, предшествующих текущей записи в индексе, возвращается в precpos-centriesLT>. 1 возвращается в precpos-centriesInRange>. Приблизительное количество записей в индексе возвращается в 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