Что означает код HRESULT 0xC8000643 (hrNoCurrentRecord)?

 
Предыдущий Следующий
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 закономерно вернёт тот же результат.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.