Что означает код HRESULT 0xC8000649 (hrUpdateNotPrepared)?

 
Предыдущий Следующий
hrKeyNotMade hrerrDataHasChanged

hrUpdateNotPrepared

Что означает hrUpdateNotPrepared

hrUpdateNotPrepared (0xC8000649) — обновление не подготовлено.

Что проверить

Зафиксируйте базу, таблицу или сессию ESE и первый API Jet/ESENT, который вернул hrUpdateNotPrepared.

  • Проверьте состояние базы и журналов ESE, свободные ресурсы процесса и состояние активной транзакции именно в момент отказа.
  • Если ошибка возникла при восстановлении или работе с журналами, сопоставьте поколения журналов, контрольную точку и выбранный набор файлов; не подменяйте восстановление простым повтором операции.

Практический смысл и диагностика

  • `JetSetColumn`/`JetUpdate`-style operation пришла к cursor без matching prepared-update state.
  • Проверьте, был ли успешный `JetPrepareUpdate` для этого cursor и не потерялось ли state после move/seek/rollback/error path.
  • Отличайте от `hrAlreadyPrepared`: там stale preparation уже существует; здесь preparation отсутствует.
  • Не повторяйте write вслепую: перечитайте current row и business preconditions, затем заново выполните правильную prepare→set→update sequence.
  • Логируйте session/cursor identity и переходы `JetMove`, `JetSeek`, bookmark, prepare, update/delete, чтобы найти lifecycle gap.

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


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