Переглянути джерело

修改qdatetime 传输类型

ZenZ 1 рік тому
батько
коміт
927df33284

+ 19 - 16
DataConsumer/DBStorage/DBStorage.cpp

@@ -95,8 +95,8 @@ void DBStorage::Run(const ConsumerInfo& ci)
     }
 
     // clientID = QString("%1@%2").arg(usr, passwd);
-    dataItems = ci.dataItems;
-    topicsMap = ci.topicsMap;
+    // dataItems = ci.dataItems;
+    // topicsMap = ci.topicsMap;
     // foreach (auto var, ci.dataItems) {
     //     dataMap.insert({var, {}});
     // }
@@ -108,7 +108,7 @@ void DBStorage::Run(const ConsumerInfo& ci)
 
 void DBStorage::OnData(const QString& user, const QString& key, const QVariant& val)
 {
-    std::unordered_map<QString, QJsonObject>dataMap;
+    QMap<QString, QJsonObject>dataMap;
 
     dataMap.clear();
     qDebug() << __FILE__ << __FUNCTION__<< __LINE__ << user << key << val;
@@ -137,7 +137,8 @@ void DBStorage::OnData(const QString& user, const QString& key, const QVariant&
         auto tableIt = targetTableMap.find(targetTable);
         for(auto columnDefsIt = tableIt->columnDefs.begin(); columnDefsIt != tableIt->columnDefs.end(); columnDefsIt++){
             QJsonObject ov = deviceObject[columnDefsIt->name].toObject();
-            dataMap.insert({columnDefsIt->from, ov});
+            // qDebug() << " >> " << columnDefsIt->from ;
+            dataMap.insert(columnDefsIt->from, ov);
         }
         insert2Data(key, dataMap);
     }
@@ -171,12 +172,12 @@ int DBStorage::open(QString type,QString wsServer,QString wsDBName,QString wsUse
             QStringList drivers = QSqlDatabase::drivers();
 
             // if( m_bTraceDebug )
-            {
-                QString strDrivers = "SQLDrivers:";
-                foreach(QString driver, drivers)
-                    strDrivers += " " + driver;
-                qDebug() << __FILE__<<__FUNCTION__<<__LINE__<< strDrivers;
-            }
+            // {
+            //     QString strDrivers = "SQLDrivers:";
+            //     foreach(QString driver, drivers)
+            //         strDrivers += " " + driver;
+            //     qDebug() << __FILE__<<__FUNCTION__<<__LINE__<< strDrivers;
+            // }
 
             objCnn = QSqlDatabase::addDatabase(driver,DBName + connectName());
             objCnn.setConnectOptions("MYSQL_OPT_RECONNECT=1;MYSQL_OPT_CONNECT_TIMEOUT=3");
@@ -256,7 +257,7 @@ int DBStorage::open(QString type,QString wsServer,QString wsDBName,QString wsUse
 
 
 #if 1
-bool DBStorage::insert2Data(const QString& sourceTable, const std::unordered_map<QString, QJsonObject>& dataMap)
+bool DBStorage::insert2Data(const QString& sourceTable, const QMap<QString, QJsonObject>& dataMap)
 {
     bool bRet = false;
     QString strInsertSql;
@@ -266,13 +267,13 @@ bool DBStorage::insert2Data(const QString& sourceTable, const std::unordered_map
     QList<ColumnDef> columnDefines = targetTableMap[dstTable].columnDefs;
     // QList<ColumnDef>::Iterator columnIt = columnDefines.begin();
     for(auto columnIt = columnDefines.begin(); columnIt != columnDefines.end(); columnIt++){
-        qDebug() << columnIt->from << " -> " << columnIt->to;
+        // qDebug() << columnIt->from << " -> " << columnIt->to;
         auto it = dataMap.find(columnIt->from);
         if(it == dataMap.end()){
             qDebug() << "ERROR :" << __FILE__ << __FUNCTION__<< __LINE__;
             return false;
         }
-        QJsonObject val = it->second;
+        QJsonObject val = it.value();
         // QString fromColumn = QString("%1.%2").arg(sourceTable,val["name"].toString());
         // if(fromColumn.compare(columnIt->from) != 0){
         //     continue;
@@ -324,6 +325,8 @@ bool DBStorage::insert2Data(const QString& sourceTable, const std::unordered_map
     {
         message = QString::fromLocal8Bit("数据入库失败");
         qCritical() << __FILE__<<__FUNCTION__<<__LINE__ << message << strInsertSql;
+    }else{
+        qDebug() << __FILE__<<__FUNCTION__<<__LINE__ << " insert success : " << strInsertSql;
     }
     return bRet;
 }
@@ -354,7 +357,7 @@ bool DBStorage::excSql(QStringList sqlList,int& id)
     QSqlDatabase objCnn = QSqlDatabase::database(DBName + connectName());
     if( objCnn.isOpen() == false )
     {
-        open(driver, server,DBName, usr, passwd);
+        open(dbtype, server,DBName, usr, passwd);
     }
     objCnn = QSqlDatabase::database(DBName + connectName());
     QSqlQuery query(objCnn);
@@ -401,7 +404,7 @@ bool DBStorage::excSql(QString strSql)
     QSqlDatabase objCnn = QSqlDatabase::database(DBName + connectName());
     if( objCnn.isOpen() == false )
     {
-        open(driver, server,DBName, usr, passwd);
+        open(dbtype, server,DBName, usr, passwd);
     }
     objCnn = QSqlDatabase::database(DBName + connectName());
     QSqlQuery query(objCnn);
@@ -421,7 +424,7 @@ QSqlQuery DBStorage::query(QString strSql)
     QSqlDatabase objCnn = QSqlDatabase::database(DBName + connectName());
     if( objCnn.isOpen() == false )
     {
-        open(driver,server,DBName, usr, passwd);
+        open(dbtype,server,DBName, usr, passwd);
     }
     objCnn = QSqlDatabase::database(DBName + connectName());
     QSqlQuery query(objCnn);

+ 3 - 3
DataConsumer/DBStorage/DBStorage.h

@@ -31,10 +31,10 @@ private:
     QSqlQuery query(QString strSql);
     virtual void run();
     void pushData();
-    bool insert2Data(const QString& key, const std::unordered_map<QString, QJsonObject>& data);
+    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::list<std::string>dataItems;
+    // std::unordered_multimap<std::string, std::string>topicsMap;
     // std::unordered_map<std::string, QJsonObject>dataMap;
 
     QString		driver;										// 用于自动重连

+ 1 - 1
modules/TDengineClient/TDengineClient.cpp

@@ -46,7 +46,7 @@ int32_t TDengineClient::msgProcess(TAOS_RES* msg)
             {
                 qint64 value = *((int64_t *)row[k]);
                 jsonVal.insert("value",value);
-                jsonVal.insert("type", QMetaType::Type::ULongLong);
+                jsonVal.insert("type", QMetaType::Type::QDateTime);
             }
             else if(fields[k].type == TSDB_DATA_TYPE_VARCHAR)
             {