12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #ifndef DATORIGINALFILESDATABASE_H
- #define DATORIGINALFILESDATABASE_H
- #include <QSqlDatabase>
- #include <QSqlQuery>
- #include "models/patchinstaller.h"
- class DatOriginalFilesDatabase {
- public:
- explicit DatOriginalFilesDatabase(QString database_path);
- ~DatOriginalFilesDatabase();
- void addFile(int file_id, int dat_id, int version, int iteration, const LOTRO_DAT::SubfileData& data);
- bool getFile(int file_id, int& dat_id, int& version, int& iteration, LOTRO_DAT::SubfileData& data);
- bool fileExists(int file_id);
- void removeDatabase();
- void closeDatabase();
- private:
- QSqlDatabase orig_files_db;
- QSqlQuery _add_file_prepared_query;
- const QString _create_database_query = "CREATE TABLE IF NOT EXISTS patch_data ("
- "file_id INTEGER PRIMARY KEY,"
- "dat_id INTEGER NOT NULL,"
- "version INTEGER NOT NULL,"
- "iteration INTEGER NOT NULL,"
- "options TEXT,"
- "binary_data BLOB,"
- "text_data TEXT"
- ");";
- const QString _add_file_query = "INSERT INTO patch_data "
- "(file_id, dat_id, version, iteration, options, binary_data, text_data) "
- "VALUES"
- "(:file_id, :dat_id, :version, :iteration, :options, :binary_data, :text_data)"
- "ON CONFLICT(`file_id`) DO UPDATE SET "
- "dat_id=:dat_id,"
- "version=:version,"
- "iteration=:iteration,"
- "options=:options,"
- "binary_data=:binary_data,"
- "text_data=:text_data"
- ";";
- const QString _get_file_query = "SELECT * FROM patch_data WHERE `file_id`=%1;";
- };
- #endif // DATORIGINALFILESDATABASE_H
|