Add SQLHelper and CenterAlignSqlTableModel. The CenterAlignSqlTableModel only make the cell text align center.
This commit is contained in:
45
src/db/SQLHelper.cpp
Normal file
45
src/db/SQLHelper.cpp
Normal file
@@ -0,0 +1,45 @@
|
||||
//
|
||||
// Created by Krad on 2021/10/11.
|
||||
//
|
||||
|
||||
#include "SQLHelper.h"
|
||||
|
||||
#include <QSqlDatabase>
|
||||
#include <QSqlQuery>
|
||||
QSqlDatabase* SQLHelper::defaultDatabase= nullptr;
|
||||
QHash<QString,CenterAlignSqlTableModel*>* SQLHelper::cache= new QHash<QString,CenterAlignSqlTableModel*>;
|
||||
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];
|
||||
}
|
||||
Reference in New Issue
Block a user