78 lines
2.0 KiB
C++
78 lines
2.0 KiB
C++
#include <string>
|
|||
|
|
#include <iostream>
|
||
|
|
#include <qthread.h>
|
||
|
|
#include <qqueue.h>
|
||
|
|
#include <qmutex.h>
|
||
|
|
#include <iomanip>
|
||
|
|
#include <sstream>
|
||
|
|
#include <sqlite3.h>
|
||
|
|
#include <qdebug.h>
|
||
|
|
#include <qfile.h>
|
||
|
|
struct sqlDatas
|
||
|
|
{
|
||
|
|
std::string dataName;//数据名称,留空则只插入SN码
|
||
|
|
int valueInt = 0;//三选一,优先int数据
|
||
|
|
double valueDouble = 0;
|
||
|
|
std::string valueText;
|
||
|
|
};
|
||
|
|
struct sqlDataStruct
|
||
|
|
{
|
||
|
|
std::string SN;//SN码,不能为空
|
||
|
|
std::string tableName;//表名,留空则自动获取
|
||
|
|
std::vector<sqlDatas>dataVec;
|
||
|
|
};
|
||
|
|
|
||
|
|
////////////此线程用于将数据存入sqlite文件/////////
|
||
|
|
class sqlController
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
std::string dataBasePath = ".//sqlDatabase//EVE-database.db";
|
||
|
|
void initPara();
|
||
|
|
bool addData(sqlDataStruct);
|
||
|
|
int checktSn(std::string sn);
|
||
|
|
void checkCol(sqlite3* db,std::string tableName,std::string columnName);
|
||
|
|
void uninitlize();
|
||
|
|
std::vector<std::string> GetTables();
|
||
|
|
std::vector<sqlDataStruct> getAllData(const std::string& tableName);
|
||
|
|
sqlDatas sqlDatasInit(std::string name, int value)
|
||
|
|
{
|
||
|
|
sqlDatas sqlData;
|
||
|
|
sqlData.dataName = name;
|
||
|
|
sqlData.valueInt = value;
|
||
|
|
return sqlData;
|
||
|
|
}
|
||
|
|
sqlDatas sqlDatasInit(std::string name, double value)
|
||
|
|
{
|
||
|
|
sqlDatas sqlData;
|
||
|
|
sqlData.dataName = name;
|
||
|
|
sqlData.valueDouble = value;
|
||
|
|
return sqlData;
|
||
|
|
}
|
||
|
|
sqlDatas sqlDatasInit(std::string name, std::string value)
|
||
|
|
{
|
||
|
|
sqlDatas sqlData;
|
||
|
|
sqlData.dataName = name;
|
||
|
|
sqlData.valueText = value;
|
||
|
|
return sqlData;
|
||
|
|
}
|
||
|
|
sqlDataStruct selectData(std::string SN, std::string TableName);
|
||
|
|
sqlite3* db;
|
||
|
|
private:
|
||
|
|
std::string getCurrentTableName()
|
||
|
|
{
|
||
|
|
std::time_t now = std::time(nullptr);
|
||
|
|
std::tm* localTime = std::localtime(&now);
|
||
|
|
|
||
|
|
std::ostringstream oss;
|
||
|
|
oss << localTime->tm_year + 1900 << "-"
|
||
|
|
<< std::setw(2) << std::setfill('0') << localTime->tm_mon + 1 << "-"
|
||
|
|
<< std::setw(2) << std::setfill('0') << localTime->tm_mday;
|
||
|
|
|
||
|
|
return oss.str();
|
||
|
|
}
|
||
|
|
QObject* m_obj;
|
||
|
|
signals:
|
||
|
|
|
||
|
|
};
|
||
|
|
#pragma once
|