| Предыдущий | Следующий |
| hrKeyDuplicate | hrKeyNotMade |
hrAlreadyPrepared
Что означает hrAlreadyPrepared
hrAlreadyPrepared (0xC8000647) — текущая запись уже скопирована или очищена.
Это старый HRESULT-вариант результата ESE (Extensible Storage Engine, ESENT); в JET API соответствующее условие известно как JET_errAlreadyPrepared.
Что проверить
- Сохраните позицию курсора перед вызовом: текущую запись, индекс, bookmark и уровень транзакции. После move/update/delete эта позиция может стать недействительной.
- Bookmark и сохранённые идентификаторы должны относиться к той же таблице и контексту, где были получены; отсутствие текущей записи обрабатывайте отдельно от отсутствия объекта.
Практический смысл и диагностика
- ESE cursor уже находится в prepared update/copy state и получил ещё один несовместимый prepare request.
- `hrUpdateNotPrepared` — обратная lifecycle ошибка, когда prepare state отсутствует; здесь предыдущий prepare всё ещё активен.
- `hrRecordNotFound` относится к lookup/seek miss и не объясняет duplicate prepare lifecycle.
- Проверьте balance `JetPrepareUpdate` с `JetUpdate`/cancel и navigation calls; не переносите prepared state через unrelated cursor operation.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.