| Предыдущий | Следующий |
| hrRecordNotFound | hrRecordClusteredChanged |
hrNoCurrentRecord
Что означает hrNoCurrentRecord
hrNoCurrentRecord (0xC8000643) — курсор не установлен на запись.
Это старый HRESULT-вариант результата ESE (Extensible Storage Engine, ESENT); в JET API соответствующее условие известно как JET_errNoCurrentRecord.
Что проверить
- Сохраните позицию курсора перед вызовом: текущую запись, индекс, bookmark и уровень транзакции. После move/update/delete эта позиция может стать недействительной.
- Bookmark и сохранённые идентификаторы должны относиться к той же таблице и контексту, где были получены; отсутствие текущей записи обрабатывайте отдельно от отсутствия объекта.
Практический смысл и диагностика
- Cursor находится before-first, after-last, на удалённой row либо иначе не позиционирован на текущей record.
- `hrRecordNotFound` описывает неуспешный lookup; `hrNoCurrentRecord` возникает позже, когда операция требует current row, а cursor её не имеет.
- Проверяйте результат navigation/seek до retrieve/update и выполняйте reseek, если concurrency могла инвалидировать текущую позицию.
- Особенно проверьте последовательность `JetMove`, `JetSeek`, `JetGetBookmark`, `JetGotoBookmark`, `JetPrepareUpdate`, `JetUpdate` и `JetDelete`.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.