Что означает код HRESULT 0xC80004B5 (hrDatabaseInvalidPages)?

 
Предыдущий Следующий
hrDatabaseInvalidName hrDatabaseCorrupted

hrDatabaseInvalidPages

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

hrDatabaseInvalidPages (0xC80004B5) — недопустимое число страниц базы данных.

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

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

  • Зафиксируйте путь базы, attachment-состояние, JET_DBID и владеющий им JET_SESID; идентификаторы ESE действительны только в своём экземпляре и сеансе.
  • Для detach/delete/schema операций проверьте открытые таблицы, другие сеансы и транзакции; при corruption/inconsistent сначала сохраните базу вместе с журналами для recovery.

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

  • Начальный либо максимальный размер ESE database задан недопустимым числом pages.
  • `hrOutOfDatabaseSpace` возникает уже при невозможности роста; `hrDatabaseInvalidPages` отвергает сам size specification до этого этапа.
  • Вычисляйте size в pages с checked arithmetic и передавайте поддерживаемое неотрицательное количество.
  • Сохраните page size, все `cpg` values, alignment/max constraints и integer conversions непосредственно на API boundary.

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


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