Что означает код HRESULT 0xC8000648 (hrKeyNotMade)?

 
Предыдущий Следующий
hrAlreadyPrepared hrUpdateNotPrepared

hrKeyNotMade

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

hrKeyNotMade (0xC8000648) — ключ не сформирован.

Это старый HRESULT-вариант результата ESE (Extensible Storage Engine, ESENT); в JET API соответствующее условие известно как JET_errKeyNotMade.

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

  • Зафиксируйте текущий индекс, его сегменты и флаги, а также фактически построенный ключ. Ошибка определения индекса отличается от ошибки позиции курсора или конфликтующего ключа.
  • После изменения индексируемых столбцов заново проверьте позицию курсора; для unique/primary индекса отдельно исследуйте ключ конфликтующей записи.

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

  • Операция seek или range была вызвана до того, как для текущего индекса полностью сформировали search key.
  • `hrKeyDuplicate` означает другое: insert/update создаёт дубликат ключа unique или primary index.
  • Проследите вызовы `JetMakeKey`, порядок сегментов, `grbit`, выбранный индекс и обработку ошибок после каждого добавленного сегмента.
  • Постройте новый ключ для выбранного индекса и проверяйте результат каждого `JetMakeKey` до выполнения seek.

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


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