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