| Предыдущий | Следующий |
| SQLITE_E_IOERR_FSYNC | SQLITE_E_CONSTRAINT_FUNCTION |
SQLITE_E_CANTOPEN_CONVPATH
Как диагностировать SQLITE_E_CANTOPEN_CONVPATH
SQLITE_E_CANTOPEN_CONVPATH — HRESULT, относящийся к области SQLite. Активный слой VFS SQLite не смог преобразовать переданное имя файла в корректный путь, пригодный для используемой операционной системы.
В случае этот результат это HRESULT-обёртка над основным или расширенным кодом результата SQLite. Полезная причина определяется SQL-оператором, состоянием соединения, VFS и расширенным кодом библиотеки.
Особенность результат
Сохраните исходную строку пути и её байтовое представление на границе открытия базы. Особое внимание требуется non-ASCII символам, locale, long-path support и custom VFS; используйте Unicode-aware open API вместо преобразования, теряющего символы.
Разбор условия ошибки
В случае этот результат важно сохранить исходный контекст вызова: имя функции, параметры, состояние объекта и первый низкоуровневый статус. Без этого одинаковый HRESULT может ошибочно связываться с разными причинами.
- При разборе этот результат проверьте время жизни prepared statement, транзакций и соединений, особенно при параллельной работе.
- При разборе он работайте с копией базы при проверке целостности; не исправляйте живой файл обрезанием или ручным редактированием.
- При разборе он запишите SQL, типы и индексы привязанных параметров, расширенный код SQLite и текст sqlite3_errmsg().
- При разборе он сохраните фактический путь базы, режим открытия, journal_mode, версию SQLite и используемый VFS.
Диагностический минимум
- Включите расширенные коды результатов и зафиксируйте первый вызов SQLite, вернувший ошибку.
- Сопоставьте проблему с разрешениями каталога, sidecar-файлами -wal/-shm/-journal и семантикой блокировок хранилища.
- Создайте минимальный тест с тем же SQL, схемой и режимом соединения.
Команда или запрос для проверки результат
Ниже сохранён технический пример из исходной страницы. Он не исправляет он сам по себе, но помогает проверить соответствующий параметр или состояние в контролируемой среде.
PRAGMA database_list;
Критерий успешного исправления
В случае он проверка исправления он должна включать успешный рабочий путь, предсказуемый отказ на некорректном входе и отсутствие новых предупреждений в журналах подсистемы SQLite.
Ссылки по этому результату
Нужно найти другой код? Найти другой код состояния или ошибки.