#include #include #include #include #include #include #include #include #include #include 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::vectordataVec; }; ////////////此线程用于将数据存入sqlite文件///////// class sqlController { public: std::string dataBasePath = ".//sqlDatabase//EVE-10-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 GetTables(); std::vector 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