| 699 | } |
| 700 | |
| 701 | std::unique_ptr<SQLiteDatabase> MakeSQLiteDatabase(const fs::path& path, const DatabaseOptions& options, DatabaseStatus& status, bilingual_str& error) |
| 702 | { |
| 703 | try { |
| 704 | fs::path data_file = SQLiteDataFile(path); |
| 705 | auto db = std::make_unique<SQLiteDatabase>(data_file.parent_path(), data_file, options); |
| 706 | if (options.verify && !db->Verify(error)) { |
| 707 | status = DatabaseStatus::FAILED_VERIFY; |
| 708 | return nullptr; |
| 709 | } |
| 710 | status = DatabaseStatus::SUCCESS; |
| 711 | return db; |
| 712 | } catch (const std::runtime_error& e) { |
| 713 | status = DatabaseStatus::FAILED_LOAD; |
| 714 | error = Untranslated(e.what()); |
| 715 | return nullptr; |
| 716 | } |
| 717 | } |
| 718 | |
| 719 | std::string SQLiteDatabaseVersion() |
| 720 | { |