| Предыдущий | Следующий |
| hrInTransaction | hrDatabaseInUse |
hrDatabaseDuplicate
Что означает hrDatabaseDuplicate
hrDatabaseDuplicate (0xC80004B1) — база данных уже существует.
Это старый HRESULT-вариант результата ESE (Extensible Storage Engine, ESENT); в JET API соответствующее условие известно как JET_errDatabaseDuplicate.
Что проверить
- Зафиксируйте путь базы, attachment-состояние, JET_DBID и владеющий им JET_SESID; идентификаторы ESE действительны только в своём экземпляре и сеансе.
- Для detach/delete/schema операций проверьте открытые таблицы, другие сеансы и транзакции; при corruption/inconsistent сначала сохраните базу вместе с журналами для recovery.
Практический смысл и диагностика
- Создание ESE database выбрало path/identity, которая уже существует.
- `hrDatabaseAttached` означает существующую database, уже attached к instance; этот код относится к duplicate-create boundary.
- Проверьте lifecycle `JetCreateDatabase`, `JetAttachDatabase`, `JetOpenDatabase`, `JetCloseDatabase`, `JetDetachDatabase` и idempotency migration.
- `hrDatabaseCorrupted` означает нарушение целостности существующей database и не является объяснением duplicate identity/path.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.