149 lines
5.6 KiB
C++
149 lines
5.6 KiB
C++
|
#include "SystemBaseDao.h"
|
||
|
|
||
|
|
||
|
|
||
|
SystemBaseDao::SystemBaseDao(SQLite::Database* pdb) :BaseDao(pdb)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
|
||
|
SystemBaseDao::~SystemBaseDao()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void SystemBaseDao::CreateTable()
|
||
|
{
|
||
|
SQLite::Transaction transaction(*m_pDB);
|
||
|
if (!m_pDB->tableExists(MachineTypeCfg::TABLE_NAME))
|
||
|
{
|
||
|
char buffer[1024];
|
||
|
string createsql = "CREATE TABLE %s(%s INTEGER PRIMARY KEY,%s VARCHAR(50) UNIQUE)";
|
||
|
sprintf_s(buffer, sizeof(buffer), createsql.c_str(), MachineTypeCfg::TABLE_NAME.c_str(), MachineTypeCfg::FIELD_ID.c_str(), MachineTypeCfg::FIELD_CODE.c_str());
|
||
|
m_pDB->exec(buffer);
|
||
|
}
|
||
|
if (!m_pDB->tableExists(PurifierTypeCfg::TABLE_NAME)) {
|
||
|
char buffer[1024];
|
||
|
string createsql = "CREATE TABLE %s(%s INTEGER PRIMARY KEY,%s VARCHAR(50) UNIQUE)";
|
||
|
sprintf_s(buffer, sizeof(buffer), createsql.c_str(), PurifierTypeCfg::TABLE_NAME.c_str(), PurifierTypeCfg::FIELD_ID.c_str(), PurifierTypeCfg::FIELD_CODE.c_str());
|
||
|
m_pDB->exec(buffer);
|
||
|
}
|
||
|
transaction.commit();
|
||
|
}
|
||
|
|
||
|
void SystemBaseDao::Find(SystemBaseCfg& cfg) {
|
||
|
char buffer[1024];
|
||
|
string selectSql = "SELECT %s,%s FROM %s";
|
||
|
sprintf_s(buffer, sizeof(buffer), selectSql.c_str(), MachineTypeCfg::FIELD_ID.c_str(), MachineTypeCfg::FIELD_CODE.c_str(), MachineTypeCfg::TABLE_NAME.c_str());
|
||
|
SQLite::Statement mtcquery(*m_pDB, buffer);
|
||
|
while (mtcquery.executeStep()) {
|
||
|
MachineTypeCfg* mtc = new MachineTypeCfg();
|
||
|
mtc->m_Id = mtcquery.getColumn(MachineTypeCfg::FIELD_ID.c_str()).getInt();
|
||
|
mtc->m_Code = mtcquery.getColumn(MachineTypeCfg::FIELD_CODE.c_str()).getString();
|
||
|
cfg.m_MachineTypeMap[mtc->m_Id] = mtc;
|
||
|
}
|
||
|
|
||
|
string strtemp = "INSERT INTO %s(%s,%s) VALUES(";
|
||
|
sprintf_s(buffer, sizeof(buffer), strtemp.c_str(),
|
||
|
MachineTypeCfg::TABLE_NAME.c_str(),
|
||
|
MachineTypeCfg::FIELD_ID.c_str(),
|
||
|
MachineTypeCfg::FIELD_CODE.c_str()
|
||
|
);
|
||
|
string strsql = string(buffer) + "%d,'%s')";
|
||
|
vector<string> needins;
|
||
|
if (cfg.m_MachineTypeMap.find(MachineTypeCfg::HBD_1000) == cfg.m_MachineTypeMap.end()) {
|
||
|
MachineTypeCfg* mtc = new MachineTypeCfg();
|
||
|
mtc->m_Id = MachineTypeCfg::HBD_1000;
|
||
|
mtc->m_Code = "HBD1000";
|
||
|
cfg.m_MachineTypeMap[mtc->m_Id] = mtc;
|
||
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(),mtc->m_Id,mtc->m_Code.c_str());
|
||
|
needins.push_back(buffer);
|
||
|
}
|
||
|
|
||
|
if (cfg.m_MachineTypeMap.find(MachineTypeCfg::HBD_1500) == cfg.m_MachineTypeMap.end()) {
|
||
|
MachineTypeCfg* mtc = new MachineTypeCfg();
|
||
|
mtc->m_Id = MachineTypeCfg::HBD_1500;
|
||
|
mtc->m_Code = "HBD1500";
|
||
|
cfg.m_MachineTypeMap[mtc->m_Id] = mtc;
|
||
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), mtc->m_Id, mtc->m_Code.c_str());
|
||
|
needins.push_back(buffer);
|
||
|
}
|
||
|
|
||
|
if (cfg.m_MachineTypeMap.find(MachineTypeCfg::HBD_1200_OLD) == cfg.m_MachineTypeMap.end()) {
|
||
|
MachineTypeCfg* mtc = new MachineTypeCfg();
|
||
|
mtc->m_Id = MachineTypeCfg::HBD_1200_OLD;
|
||
|
mtc->m_Code = "HBD1200_OLD";
|
||
|
cfg.m_MachineTypeMap[mtc->m_Id] = mtc;
|
||
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), mtc->m_Id, mtc->m_Code.c_str());
|
||
|
needins.push_back(buffer);
|
||
|
}
|
||
|
|
||
|
if (cfg.m_MachineTypeMap.find(MachineTypeCfg::HBD_1200) == cfg.m_MachineTypeMap.end()) {
|
||
|
MachineTypeCfg* mtc = new MachineTypeCfg();
|
||
|
mtc->m_Id = MachineTypeCfg::HBD_1200;
|
||
|
mtc->m_Code = "HBD1200";
|
||
|
cfg.m_MachineTypeMap[mtc->m_Id] = mtc;
|
||
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), mtc->m_Id, mtc->m_Code.c_str());
|
||
|
needins.push_back(buffer);
|
||
|
}
|
||
|
|
||
|
if (cfg.m_MachineTypeMap.find(MachineTypeCfg::HBD_E1000) == cfg.m_MachineTypeMap.end()) {
|
||
|
MachineTypeCfg* mtc = new MachineTypeCfg();
|
||
|
mtc->m_Id = MachineTypeCfg::HBD_E1000;
|
||
|
mtc->m_Code = "HBD E1000";
|
||
|
cfg.m_MachineTypeMap[mtc->m_Id] = mtc;
|
||
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), mtc->m_Id, mtc->m_Code.c_str());
|
||
|
needins.push_back(buffer);
|
||
|
}
|
||
|
|
||
|
sprintf_s(buffer, sizeof(buffer), selectSql.c_str(), PurifierTypeCfg::FIELD_ID.c_str(), PurifierTypeCfg::FIELD_CODE.c_str(), PurifierTypeCfg::TABLE_NAME.c_str());
|
||
|
SQLite::Statement ptcquery(*m_pDB, buffer);
|
||
|
while (ptcquery.executeStep()) {
|
||
|
PurifierTypeCfg* ptc = new PurifierTypeCfg();
|
||
|
ptc->m_Id = ptcquery.getColumn(PurifierTypeCfg::FIELD_ID.c_str()).getInt();
|
||
|
ptc->m_Code = ptcquery.getColumn(PurifierTypeCfg::FIELD_CODE.c_str()).getString();
|
||
|
cfg.m_PurifierTypeMap[ptc->m_Id] = ptc;
|
||
|
}
|
||
|
|
||
|
string strtemp2 = "INSERT INTO %s(%s,%s) VALUES(";
|
||
|
sprintf_s(buffer, sizeof(buffer), strtemp2.c_str(),
|
||
|
PurifierTypeCfg::TABLE_NAME.c_str(),
|
||
|
PurifierTypeCfg::FIELD_ID.c_str(),
|
||
|
PurifierTypeCfg::FIELD_CODE.c_str()
|
||
|
);
|
||
|
string strsql2 = string(buffer) + "%d,'%s')";
|
||
|
if (cfg.m_PurifierTypeMap.find(PurifierTypeCfg::HBD_PURIFIER_1) == cfg.m_PurifierTypeMap.end()) {
|
||
|
PurifierTypeCfg* ptc = new PurifierTypeCfg();
|
||
|
ptc->m_Id = PurifierTypeCfg::HBD_PURIFIER_1;
|
||
|
ptc->m_Code = "HBD_1GP";
|
||
|
cfg.m_PurifierTypeMap[ptc->m_Id] = ptc;
|
||
|
sprintf_s(buffer, sizeof(buffer), strsql2.c_str(), ptc->m_Id, ptc->m_Code.c_str());
|
||
|
needins.push_back(buffer);
|
||
|
}
|
||
|
|
||
|
if (cfg.m_PurifierTypeMap.find(PurifierTypeCfg::XT) == cfg.m_PurifierTypeMap.end()) {
|
||
|
PurifierTypeCfg* ptc = new PurifierTypeCfg();
|
||
|
ptc->m_Id = PurifierTypeCfg::XT;
|
||
|
ptc->m_Code = "SANTANAC";
|
||
|
cfg.m_PurifierTypeMap[ptc->m_Id] = ptc;
|
||
|
sprintf_s(buffer, sizeof(buffer), strsql2.c_str(), ptc->m_Id, ptc->m_Code.c_str());
|
||
|
needins.push_back(buffer);
|
||
|
}
|
||
|
|
||
|
if (cfg.m_PurifierTypeMap.find(PurifierTypeCfg::HBD_PURIFIER_2) == cfg.m_PurifierTypeMap.end()) {
|
||
|
PurifierTypeCfg* ptc = new PurifierTypeCfg();
|
||
|
ptc->m_Id = PurifierTypeCfg::HBD_PURIFIER_2;
|
||
|
ptc->m_Code = "HBD_2GP";
|
||
|
cfg.m_PurifierTypeMap[ptc->m_Id] = ptc;
|
||
|
sprintf_s(buffer, sizeof(buffer), strsql2.c_str(), ptc->m_Id, ptc->m_Code.c_str());
|
||
|
needins.push_back(buffer);
|
||
|
}
|
||
|
|
||
|
if (!needins.empty()) {
|
||
|
SQLite::Transaction transaction(*m_pDB);
|
||
|
for (size_t i = 0; i < needins.size(); ++i) {
|
||
|
m_pDB->exec(needins[i]);
|
||
|
}
|
||
|
transaction.commit();
|
||
|
}
|
||
|
|
||
|
}
|