Files
2024-02-27 14:55:21 +08:00

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