123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- #ifndef DBSTORAGE_H
- #define DBSTORAGE_H
- #include "DBStorage_global.h"
- #include "Client.h"
- #include <QJsonObject>
- #include <QSqlQuery>
- #include <QObject>
- #include <QMap>
- 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<QString, QJsonObject>& data);
- // MQTTClient* mqtt = nullptr;
- // std::list<std::string>dataItems;
- // std::unordered_multimap<std::string, std::string>topicsMap;
- // std::unordered_map<std::string, QJsonObject>dataMap;
- 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<QString> sourceTables;
- QList<ColumnDef> columnDefs;
- QString columns;
- };
- QMap<QString, TargetTable>targetTableMap;
- QMap<QString, QString> sourceTableMap;
- // private:
- // std::map<QString,std::map<QString,QString>> mapTableColumns;
- // std::map<QString,QList<QString>> mapTableColumns_Ex;
- // std::map<QString,QList<QString>> mapTableColumns_Alias_Ex;
- // std::map<QString,std::map<QString,QString>> mapAlias2Name; // 字段对应一个别名,上层转来的是别名,
- // std::map<QString,std::map<QString,QString>> mapName2Alias; // 根据字段名和表,找别名
- // std::map<QString,QString> mapTableSeparate;
- // std::map<QString,QString> mapExistTables; // 用一个map来,来管理,日期与表,创建后,则停止
- signals:
- void received();
- };
- extern "C" {//一定要添加上
- DBSTORAGE_EXPORT Client* instance();
- DBSTORAGE_EXPORT void destroy(Client*);
- }
- #endif // DBSTORAGE_H
|