Add a query count method to SQLHelper

This commit is contained in:
Krad
2021-10-14 17:04:59 +08:00
parent 533c15d57c
commit b6c200919f
2 changed files with 17 additions and 1 deletions

View File

@@ -3,9 +3,11 @@
//
#include "SQLHelper.h"
#include <QSqlQuery>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlRecord>
#include <qdebug.h>
QSqlDatabase* SQLHelper::defaultDatabase= nullptr;
QHash<QString,CenterAlignSqlTableModel*>* SQLHelper::cache= new QHash<QString,CenterAlignSqlTableModel*>;
bool SQLHelper::Open() {
@@ -36,6 +38,8 @@ void SQLHelper::Close() {
}
}
QSqlTableModel* SQLHelper::getTable(const QString &tableName) {
if (cache->contains(tableName)) return (*cache)[tableName];
CenterAlignSqlTableModel *model = new CenterAlignSqlTableModel(nullptr,*defaultDatabase);
@@ -43,3 +47,13 @@ QSqlTableModel* SQLHelper::getTable(const QString &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;
}

View File

@@ -7,6 +7,7 @@
class QSqlDatabase;
#include "CenterAlignSqlTableModel.h"
#include <QString>
#include <QHash>
@@ -15,6 +16,7 @@ public:
static bool Open();
static bool Open(QSqlDatabase* base);
static void Close();
static int QueryCount(QString sql);
static QSqlTableModel* getTable(const QString & tableName);
private:
static QSqlDatabase* defaultDatabase;