| Предыдущий | Следующий |
| STG_S_MONITORING | STG_S_CONSOLIDATIONFAILED |
STG_S_MULTIPLEOPENS
Фиксация выполнена; уплотнение — нет
Этот результат успешного выполнения с оговоркой возвращается, когда IStorage::Commit публикует изменения, но не может консолидировать составной файл из-за нескольких открытых представлений, в частности в документированном случае STGM_NOSNAPSHOT. Консолидация — это запрос на уплотнение; она отделена от сохранения транзакции.
Откатывать изменения или сообщать «сохранение не удалось» неправильно. Приложение должно считать данные зафиксированными, а несостоявшуюся консолидацию обработать как служебную информацию.
Что проверить
- Был ли запрошен
STGC_CONSOLIDATE. - Все открытые
IStorage,IStreamи внешние процессы, которые могут удерживать тот же составной файл. - Использование
STGM_NOSNAPSHOTи время жизни дублированных интерфейсов хранилища. - Можно ли повторить консолидацию позже, после закрытия лишних представлений.
Ссылки
IStorage::Commit · Константы STGM · Обзор Structured Storage
Нужно найти другой код? Найти другой код состояния или ошибки.