| Предыдущий | Следующий |
| hrRecordNotFound | hrRecordClusteredChanged |
hrNoCurrentRecord
Что означает hrNoCurrentRecord
hrNoCurrentRecord (0xC8000643) — старый HRESULT-вариант состояния ESE/ESENT, при котором cursor не установлен на current record. Это отличается от неуспешного поиска записи: lookup мог завершиться ранее, а ошибка возникает сейчас, когда следующая операция требует действующую cursor position.
Что проверить
- Сохраните последнюю navigation/seek operation, её return code, table/index и bookmark перед failing call.
- Проверьте состояния before-first/after-last и последовательность
JetMove,JetSeek, delete/update операций, после которых текущая запись могла исчезнуть. - При concurrency учитывайте invalidation позиции: сохранённый cursor state нельзя считать вечным после изменения table/index или rollback.
Как действовать
Перед retrieve/update явно позиционируйте cursor на существующей записи и проверяйте результат navigation call. Если позиция могла устареть, выполните новый seek/goto по валидному bookmark. Повтор record operation без восстановления current record state закономерно вернёт тот же результат.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.