You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.3 KiB
C

5 years ago
#ifndef DATABASESQL_H
#define DATABASESQL_H
#include <QObject>
#include <QtSql\qsqldatabase.h>
#include <QtSql\qsqlquery.h>
#include <QtSql\qsqlerror.h>
#include <QtSql\qsqlrecord.h>
#include <QtSql\qsqlfield.h>
#include <QtSql\qsqldriver.h>
#include <QtCore\qstring.h>
#include <QtCore\qstringlist.h>
#include <QtCore\qvariant.h>
#include <QtCore\qbuffer.h>
#include <QVariantMap>
#include "QMutex"
#define _CHECK_TIME1_ "time1"
#define _CHECK_TIME2_ "time2"
#define _CHECK_NAME_ "name"
#define _CHECK_TYPE_ "Type"
#define _CHECK_COUNT_ "Count"
#define _CHECK_LOGTYPE "logType"
#define _CHECK_UID_ "uid"
enum EMTYPE_CHECKTYPE{
EMT_CHECK_BY_TIME = 0,//只按时间查询
EMT_CHECK_BY_NAME,//按照模型名查询
EMT_CHECK_BY_SAE,//按照起始结束时间查询
EMT_CHECK_BY_LOG,
EMT_CHECK_BY_COUNT,
EMT_CHECK_BY_UID,
};
class DataBaseSql : public QObject
{
Q_OBJECT
public:
DataBaseSql( const QString& dbName ,const QString &dbType = QString("QSQLITE"));
~DataBaseSql();
bool openDB();
void closeDB();
void SetDatabaseName(QString dbName);
void SetDBPort(QString nAddr = QString("localhost"), int nPort = 3306);
void SetDBUser(QString dbUser = QString("root"), QString dbPwd = QString("hzleaper"));
virtual bool InitDatabase();
bool CreatTable(QString m_tableName, QString m_primaty, QVariantMap m_map);
virtual bool InsertOneData(QString m_tableName, QVariantMap m_map);
virtual bool ModefyOneData(QString m_tableName, QVariantMap m_map);
virtual bool DeleteOneData(QString m_tableName, QString m_map);
/*
m_value.insert("time1","");//起始时间
m_value.insert("time2","");//结束时间
m_value.insert("name","");//模型名字
m_value.insert("Type","");//查询类型
m_value.insert("logType","");//报警信息查询
*/
virtual bool checkoutData(QVariantMap m_value, QSqlQuery &sql) = 0;
virtual bool checkoutData(QString selectStr, QSqlQuery &sql) = 0;
virtual bool AddOneWarningMessage(struct WarnMessage m_messageInfo) = 0;
virtual bool DelWarnDataByCount(int model = 1, int nCount = 100000) = 0;
virtual bool DelAllDatas() = 0;
virtual bool DelDatasByTime(QString minTime) = 0;
virtual QString genCheckStr(QVariantMap m_value);//通过value数据生成查询语句 实现与checkoutdata相同
public:
protected:
QSqlDatabase *db;
QSqlQuery qry;
QString m_DBType;
};
#endif // DATABASESQL_H