// // Created by Krad on 2021/10/11. // #include "SQLHelper.h" #include #include #include #include #include QSqlDatabase* SQLHelper::defaultDatabase= nullptr; QHash* SQLHelper::cache= new QHash; bool SQLHelper::Open() { if (defaultDatabase) return true; defaultDatabase= new QSqlDatabase(QSqlDatabase::addDatabase("QSQLITE", "USCTDB")); defaultDatabase->setDatabaseName("USCTDB.data"); return defaultDatabase->open(); } bool SQLHelper::Open(QSqlDatabase *base) { if(base && base != defaultDatabase){ defaultDatabase = base; } return defaultDatabase->open(); } void SQLHelper::Close() { for(auto item : cache->values()) { delete item; } cache->clear(); if(defaultDatabase->isValid() && defaultDatabase->isOpen()) { defaultDatabase->close(); delete defaultDatabase; defaultDatabase = nullptr; } } QSqlTableModel* SQLHelper::getTable(const QString &tableName) { if (cache->contains(tableName)) return (*cache)[tableName]; CenterAlignSqlTableModel *model = new CenterAlignSqlTableModel(nullptr,*defaultDatabase); model->setTable(tableName); (*cache)[tableName] = model; return (*cache)[tableName]; } int SQLHelper::QueryCount(QString sql) { QSqlQuery query(*defaultDatabase); if (query.exec(sql)) { query.last(); return query.at()+1; } return 0; }