#ifndef DBSTORAGE_H #define DBSTORAGE_H #include "DBStorage_global.h" #include "Client.h" #include #include #include #include class DBSTORAGE_EXPORT DBStorage:public Client { // Q_OBJECT public: DBStorage(); ~DBStorage(); virtual void Run(const ConsumerInfo& ci); virtual void OnData(const QString& user, const QString& key, const QVariant& val); virtual void setLoader(QLibrary*); private: void close(); // bool GetTableColumnTypes(); virtual int open(QString type,QString wsServer,QString wsDBName, QString wsUser,QString wsPassword) ; // virtual int open(QString wsDBFile,QString type = "QSQLITE") ; virtual bool isConnected() ; // virtual QSqlQuery query(QString strSql) ; virtual bool excSql(QStringList sqlList,int& idNew) ; virtual bool excSql(QString strSql) ; QSqlQuery query(QString strSql); virtual void run(); void pushData(); bool insert2Data(const QString& key, const QMap& data); // MQTTClient* mqtt = nullptr; // std::listdataItems; // std::unordered_multimaptopicsMap; // std::unordered_mapdataMap; QString driver; // 用于自动重连 // QString serverIp; // 用于自动重连 QString usr = "root"; QString passwd = "N6pNXbZjspDRqNGnxMmc"; QString dbtype; QString server; QString DBName; // QString dstTable; // QString tableColumns; struct ColumnDef{ QString name; QString from; QString to; }; struct TargetTable{ QList sourceTables; QList columnDefs; QString columns; }; QMaptargetTableMap; QMap sourceTableMap; // private: // std::map> mapTableColumns; // std::map> mapTableColumns_Ex; // std::map> mapTableColumns_Alias_Ex; // std::map> mapAlias2Name; // 字段对应一个别名,上层转来的是别名, // std::map> mapName2Alias; // 根据字段名和表,找别名 // std::map mapTableSeparate; // std::map mapExistTables; // 用一个map来,来管理,日期与表,创建后,则停止 signals: void received(); }; extern "C" {//一定要添加上 DBSTORAGE_EXPORT Client* instance(); DBSTORAGE_EXPORT void destroy(Client*); } #endif // DBSTORAGE_H