| Предыдущий | Следующий |
| SQLITE_E_LOCKED | SQLITE_E_READONLY |
SQLITE_E_NOMEM
Что означает SQLITE_E_NOMEM
SQLITE_E_NOMEM (0X87AF0007) — SQLite не смог выделить память для продолжения операции.
HRESULT является оболочкой результата SQLITE_NOMEM. Причиной может быть реальное исчерпание памяти, лимит процесса или слишком крупный запрос/значение BLOB.
Что проверить
- Проверьте доступную память и лимиты процесса в момент ошибки.
- Сопоставьте код с размером результата, BLOB и объёмом временных данных конкретного SQL-запроса.
- Если используется собственная сборка SQLite, проверьте пользовательский allocator и ограничения конфигурации.
Зафиксируйте sqlite3_memory_used()/sqlite3_memory_highwater(), размер проблемного BLOB/result set и лимиты процесса рядом с первым SQLITE_NOMEM. При custom allocator проверьте его отказ отдельно; повтор после освобождения случайной памяти не показывает, какой запрос или лимит создал пиковое потребление.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
