server-sdk/src/serversdk/databasemanager.h
2019-11-25 16:28:08 +01:00

58 lines
1.5 KiB
C++

#pragma once
#include <QSql>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QVariant>
#include <QDebug>
#include <QDateTime>
//#include "logger.h"
namespace serversdk {
class DatabaseManager : public QObject
{
Q_OBJECT
friend class Logger;
public:
DatabaseManager();
DatabaseManager(const QString& host, const QString& dbName, const QString& user, const QString& password, bool mDryMode = false);
~DatabaseManager();
// Attributes
bool dryMode() const;
void setDryMode(bool dryMode);
bool openSQLite(const QString &path, const QString &connectionName = QStringLiteral("qt_sql_default_connection"));
bool openPostgres(const QString& host, const QString& dbName, const QString& user, const QString& password, const QString &connectionName = QStringLiteral("qt_sql_default_connection"));
bool isValid() const;
bool isOpen() const;
void close();
// SQL handling
QSqlQuery execPlainSql(const QString &sqlText);
QSqlQuery executeQuery(QSqlQuery &query, const QString &sqlText = QString());
QSqlQuery createQuery();
QSqlDatabase database() const;
private:
QSqlQuery processResult(int res, const QSqlQuery &query) const;
QString getLastQuery(const QSqlQuery &query) const;
void log(const QString &msg) const;
signals:
void sqlError(const QSqlQuery &query) const;
private:
QString mConnectionName;
QSqlDatabase mDatabase;
QSqlQuery query;
bool mDryMode = false;
};
} // core