Refactor dialog package.
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
#include <QSqlRecord>
|
||||
#include <qdebug.h>
|
||||
QSqlDatabase* SQLHelper::defaultDatabase= nullptr;
|
||||
QHash<QString,QSqlQueryModel*>* SQLHelper::cache= new QHash<QString,QSqlQueryModel*>;
|
||||
static QHash<QString,QSqlQueryModel*> cache;
|
||||
bool SQLHelper::Open() {
|
||||
if (defaultDatabase) return true;
|
||||
defaultDatabase= new QSqlDatabase(QSqlDatabase::addDatabase("QSQLITE", "USCTDB"));
|
||||
@@ -26,11 +26,11 @@ bool SQLHelper::Open(QSqlDatabase *base) {
|
||||
}
|
||||
|
||||
void SQLHelper::Close() {
|
||||
for(auto item : cache->values())
|
||||
for(auto item : cache.values())
|
||||
{
|
||||
delete item;
|
||||
}
|
||||
cache->clear();
|
||||
cache.clear();
|
||||
if(defaultDatabase->isValid() && defaultDatabase->isOpen())
|
||||
{
|
||||
defaultDatabase->close();
|
||||
@@ -39,25 +39,25 @@ void SQLHelper::Close() {
|
||||
}
|
||||
}
|
||||
|
||||
void prepareSQL(QSqlQuery& query,QMap<QString,QVariant>* params)
|
||||
void prepareSQL(QSqlQuery& query,const QMap<QString,QVariant>& params)
|
||||
{
|
||||
if (!params) return;
|
||||
for (auto key : params->keys())
|
||||
if (params.empty()) return;
|
||||
for (const auto & key : params.keys())
|
||||
{
|
||||
query.bindValue(key,params->value(key));
|
||||
query.bindValue(key,params.value(key));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
QSqlTableModel* SQLHelper::getTable(const QString &tableName) {
|
||||
if (cache->contains(tableName)) return (QSqlTableModel*)(*cache)[tableName];
|
||||
if (cache.contains(tableName)) return (QSqlTableModel*)cache[tableName];
|
||||
CenterAlignSqlTableModel *model = new CenterAlignSqlTableModel(nullptr,*defaultDatabase);
|
||||
model->setTable(tableName);
|
||||
(*cache)[tableName] = model;
|
||||
return (QSqlTableModel*)(*cache)[tableName];
|
||||
cache[tableName] = model;
|
||||
return (QSqlTableModel*)(cache)[tableName];
|
||||
}
|
||||
|
||||
int SQLHelper::QueryCount(QString sql, QMap<QString,QVariant>* params) {
|
||||
int SQLHelper::QueryCount(const QString& sql, const QMap<QString,QVariant>& params) {
|
||||
QSqlQuery query(*defaultDatabase);
|
||||
prepareSQL(query, params);
|
||||
if (query.exec(sql))
|
||||
@@ -68,7 +68,7 @@ int SQLHelper::QueryCount(QString sql, QMap<QString,QVariant>* params) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int SQLHelper::ExecuteNoQuery(QString sql, QMap<QString,QVariant>* params) {
|
||||
int SQLHelper::ExecuteNoQuery(const QString& sql, const QMap<QString,QVariant>& params) {
|
||||
QSqlQuery query(*defaultDatabase);
|
||||
query.prepare(sql);
|
||||
prepareSQL(query, params);
|
||||
@@ -79,7 +79,7 @@ int SQLHelper::ExecuteNoQuery(QString sql, QMap<QString,QVariant>* params) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
void SQLHelper::QueryFirst(QString sql, QMap<QString,QVariant>& result, QMap<QString,QVariant>* params) {
|
||||
void SQLHelper::QueryFirst(const QString &sql, QMap<QString,QVariant>& result, const QMap<QString,QVariant>& params) {
|
||||
QSqlQuery query(*defaultDatabase);
|
||||
query.prepare(sql);
|
||||
prepareSQL(query, params);
|
||||
@@ -95,8 +95,8 @@ void SQLHelper::QueryFirst(QString sql, QMap<QString,QVariant>& result, QMap<QSt
|
||||
}
|
||||
}
|
||||
|
||||
QSqlQueryModel *SQLHelper::QueryModel(QString queryName, QString sql, QMap<QString, QVariant> *params) {
|
||||
if (cache->contains(queryName)) return (*cache)[queryName];
|
||||
QSqlQueryModel *SQLHelper::QueryModel(const QString& queryName, const QString& sql, const QMap<QString, QVariant> ¶ms) {
|
||||
if (cache.contains(queryName)) return cache[queryName];
|
||||
QSqlQueryModel* model = new QSqlQueryModel;
|
||||
|
||||
QSqlQuery query(*defaultDatabase);
|
||||
@@ -108,16 +108,16 @@ QSqlQueryModel *SQLHelper::QueryModel(QString queryName, QString sql, QMap<QStri
|
||||
delete model;
|
||||
return nullptr;
|
||||
}
|
||||
(*cache)[queryName] = model;
|
||||
cache[queryName] = model;
|
||||
return model;
|
||||
}
|
||||
|
||||
QSqlQueryModel *SQLHelper::QueryModel(QString queryName) {
|
||||
if (cache->contains(queryName)) return (*cache)[queryName];
|
||||
QSqlQueryModel *SQLHelper::QueryModel(const QString& queryName) {
|
||||
if (cache.contains(queryName)) return cache[queryName];
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void SQLHelper::QueryMap(QString sql, QMap<QString, QVariant> &result, QMap<QString, QVariant> *params) {
|
||||
void SQLHelper::QueryMap(const QString& sql, QMap<QString, QVariant> &result, const QMap<QString, QVariant> ¶ms) {
|
||||
QSqlQuery query(*defaultDatabase);
|
||||
query.prepare(sql);
|
||||
prepareSQL(query, params);
|
||||
|
||||
@@ -16,16 +16,15 @@ public:
|
||||
static bool Open();
|
||||
static bool Open(QSqlDatabase* base);
|
||||
static void Close();
|
||||
static void QueryFirst(QString sql, QMap<QString,QVariant>& result, QMap<QString,QVariant>* params = nullptr);
|
||||
static int QueryCount(QString sql, QMap<QString,QVariant>* params = nullptr);
|
||||
static int ExecuteNoQuery(QString sql, QMap<QString,QVariant>* params = nullptr);
|
||||
static void QueryMap(QString sql, QMap<QString,QVariant>& result, QMap<QString,QVariant>* params = nullptr);
|
||||
static QSqlQueryModel* QueryModel(QString queryName);
|
||||
static QSqlQueryModel* QueryModel(QString queryName, QString sql, QMap<QString,QVariant>* params = nullptr);
|
||||
static void QueryFirst(const QString &sql, QMap<QString,QVariant>& result, const QMap<QString, QVariant> ¶ms = QMap<QString, QVariant>());
|
||||
static int QueryCount(const QString &sql, const QMap<QString, QVariant> ¶ms = QMap<QString, QVariant>());
|
||||
static int ExecuteNoQuery(const QString &sql,const QMap<QString, QVariant> ¶ms = QMap<QString, QVariant>());
|
||||
static void QueryMap(const QString& sql, QMap<QString,QVariant>& result, const QMap<QString, QVariant> ¶ms = QMap<QString, QVariant>());
|
||||
static QSqlQueryModel* QueryModel(const QString &queryName);
|
||||
static QSqlQueryModel* QueryModel(const QString &queryName, const QString &sql, const QMap<QString, QVariant> ¶ms = QMap<QString, QVariant>());
|
||||
static QSqlTableModel* getTable(const QString & tableName);
|
||||
private:
|
||||
static QSqlDatabase* defaultDatabase;
|
||||
static QHash<QString,QSqlQueryModel*>* cache;
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user