#ifndef DATABASESQL_H #define DATABASESQL_H #include #include #include #include #include #include #include #include #include #include #include #include #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