#include "MachineCfgDao.h" #include "../../utils/StringHelper.h" #include "../../utils/TimeHelper.h" #include #include "../ConfigManager.h" MachineCfgDao::MachineCfgDao(SQLite::Database* pdb):BaseDao(pdb) { } MachineCfgDao::~MachineCfgDao() { } void MachineCfgDao::CreateTable() { if (!m_pDB->tableExists(MachineCfg::TABLE_NAME)) { char buffer[1024]; string createSql = "CREATE TABLE %s(%s VARCHAR(32) PRIMARY KEY,%s VARCHAR(50))"; sprintf_s(buffer, sizeof(buffer), createSql.c_str(), MachineCfg::TABLE_NAME.c_str(), MachineCfg::FIELD_CODE.c_str(), MachineCfg::FIELD_VALUE.c_str()); m_pDB->exec(buffer); } } void MachineCfgDao::Find(MachineCfg& mcfg) { Machine::InitMachineCfg(&mcfg); char buffer[1024]; string strsql = "SELECT %s,%s FROM %s"; string insertSql = "INSERT INTO " + MachineCfg::TABLE_NAME + "(" + MachineCfg::FIELD_CODE + "," + MachineCfg::FIELD_VALUE + ") VALUES('%s','%s')"; sprintf_s(buffer, sizeof(buffer), strsql.c_str(), MachineCfg::FIELD_CODE.c_str(), MachineCfg::FIELD_VALUE.c_str(), MachineCfg::TABLE_NAME.c_str()); SQLite::Statement query(*m_pDB, buffer); map values; vector ins; while (query.executeStep()) { values[query.getColumn(MachineCfg::FIELD_CODE.c_str()).getString()] = query.getColumn(MachineCfg::FIELD_VALUE.c_str()).getString(); } if (values.find(MachineCfg::CODE_SERIAL.c_str()) != values.end())mcfg.m_serial = values[MachineCfg::CODE_SERIAL]; else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_SERIAL.c_str(), mcfg.m_serial.c_str()); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_NAME.c_str()) != values.end())mcfg.m_Name = values[MachineCfg::CODE_NAME]; else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_NAME.c_str(), mcfg.m_Name.c_str()); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_LANGUAGE.c_str()) != values.end())mcfg.m_language = stoi(values[MachineCfg::CODE_LANGUAGE]); else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_LANGUAGE.c_str(), to_string(mcfg.m_language).c_str()); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_MACHINE_TYPE.c_str()) != values.end())mcfg.m_MachineType = stoi(values[MachineCfg::CODE_MACHINE_TYPE]); else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_MACHINE_TYPE.c_str(), to_string(mcfg.m_MachineType).c_str()); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_SCAN_CONTROL.c_str()) != values.end())mcfg.m_ScanControl = stoi(values[MachineCfg::CODE_SCAN_CONTROL]); else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_SCAN_CONTROL.c_str(), to_string(mcfg.m_ScanControl).c_str()); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_PULIFIER_TYPE.c_str()) != values.end())mcfg.m_PulifierType = stoi(values[MachineCfg::CODE_PULIFIER_TYPE]); else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_PULIFIER_TYPE.c_str(), to_string(mcfg.m_PulifierType).c_str()); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_FONT_SIZE.c_str()) != values.end())mcfg.m_fontSize = stof(values[MachineCfg::CODE_FONT_SIZE]); else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_FONT_SIZE.c_str(), to_string(mcfg.m_fontSize).c_str()); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_FONT_SCALE.c_str()) != values.end())mcfg.m_fontScale = stof(values[MachineCfg::CODE_FONT_SCALE]); else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_FONT_SCALE.c_str(), to_string(mcfg.m_fontScale).c_str()); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_LAST_START_TIME.c_str()) != values.end())mcfg.m_lastStartTime = stoll(values[MachineCfg::CODE_LAST_START_TIME]); else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_LAST_START_TIME.c_str(), to_string(mcfg.m_lastStartTime).c_str()); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_LAST_SHUTDOWN_TIME.c_str()) != values.end())mcfg.m_lastShutdownTime = stoll(values[MachineCfg::CODE_LAST_SHUTDOWN_TIME]); else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_LAST_SHUTDOWN_TIME.c_str(), to_string(mcfg.m_lastShutdownTime).c_str()); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_LOCK_PASSWORD.c_str()) != values.end())mcfg.m_LockPassword = values[MachineCfg::CODE_LOCK_PASSWORD]; else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_LOCK_PASSWORD.c_str(), mcfg.m_LockPassword.c_str()); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_LOCK_ALPHA.c_str()) != values.end())mcfg.m_LockAlpha = stof(values[MachineCfg::CODE_LOCK_ALPHA]); else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_LOCK_ALPHA.c_str(), to_string(mcfg.m_LockAlpha).c_str()); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_LOCK_IDLE_TIME.c_str()) != values.end())mcfg.m_LockIdleTime = stoi(values[MachineCfg::CODE_LOCK_IDLE_TIME]); else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_LOCK_IDLE_TIME.c_str(), to_string(mcfg.m_LockIdleTime).c_str()); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_EXPIRED_TIME.c_str()) != values.end())mcfg.m_ExpriedTime = stoul(values[MachineCfg::CODE_EXPIRED_TIME]); else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_EXPIRED_TIME.c_str(), to_string(mcfg.m_ExpriedTime).c_str()); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_CONNECT_PASSWORD.c_str()) != values.end())mcfg.m_ConnectPassword = values[MachineCfg::CODE_CONNECT_PASSWORD]; else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_CONNECT_PASSWORD.c_str(), mcfg.m_ConnectPassword.c_str()); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_LOCATION.c_str()) != values.end())mcfg.m_Location = values[MachineCfg::CODE_LOCATION]; else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_LOCATION.c_str(), mcfg.m_Location.c_str()); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_SHAPE.c_str()) != values.end())mcfg.m_PlatformShape = stoi(values[MachineCfg::CODE_SHAPE]); else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_SHAPE.c_str(), to_string(mcfg.m_PlatformShape).c_str()); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_SUPPORT_NON_ENC_MAGIC.c_str()) != values.end())mcfg.m_SupportNonEncMagic = (stoi(values[MachineCfg::CODE_SUPPORT_NON_ENC_MAGIC])>0?true:false); else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_SUPPORT_NON_ENC_MAGIC.c_str(), to_string(mcfg.m_SupportNonEncMagic).c_str()); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_PRINT_STRATEGY.c_str()) != values.end())mcfg.m_PrintStrategy = MachineCfg::PrintStrategy(stoi(values[MachineCfg::CODE_PRINT_STRATEGY])); else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_PRINT_STRATEGY.c_str(), to_string(mcfg.m_PrintStrategy).c_str()); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_PLATFORM_WIDTH.c_str()) != values.end())mcfg.m_PlatformWidth = stoi(values[MachineCfg::CODE_PLATFORM_WIDTH]); else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_PLATFORM_WIDTH.c_str(), to_string(mcfg.m_PlatformWidth).c_str()); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_PLATFORM_LENGTH.c_str()) != values.end())mcfg.m_PlatformLength = stoi(values[MachineCfg::CODE_PLATFORM_LENGTH]); else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_PLATFORM_LENGTH.c_str(), to_string(mcfg.m_PlatformLength).c_str()); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_IS_INTELLI.c_str()) != values.end())mcfg.m_IsIntelli = (stoi(values[MachineCfg::CODE_IS_INTELLI]) > 0 ? true : false); else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_IS_INTELLI.c_str(), mcfg.m_IsIntelli ? "1" : "0"); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_IO_VERSION.c_str()) != values.end())mcfg.m_IOVersion = stoi(values[MachineCfg::CODE_IO_VERSION]); else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_IO_VERSION.c_str(), to_string(mcfg.m_IOVersion).c_str()); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_SUPPLY_MACHINE_VERSION.c_str()) != values.end())mcfg.m_SupplyMachineVersion = stoi(values[MachineCfg::CODE_SUPPLY_MACHINE_VERSION]); else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_SUPPLY_MACHINE_VERSION.c_str(), to_string(mcfg.m_SupplyMachineVersion).c_str()); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_I18N_LANG.c_str()) != values.end()) mcfg.m_I18NLang = values[MachineCfg::CODE_I18N_LANG]; else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_I18N_LANG.c_str(), mcfg.m_I18NLang.c_str()); ins.push_back(buffer); } if (values.find(MachineCfg::CODE_MACHINE_CODE.c_str()) != values.end()) mcfg.m_MachineCode = values[MachineCfg::CODE_MACHINE_CODE]; else { sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_MACHINE_CODE.c_str(), mcfg.m_MachineCode.c_str()); ins.push_back(buffer); } memset(&mcfg.m_MachineCodeAss, '\0', sizeof(mcfg.m_MachineCodeAss)); for (int i = 0; i < mcfg.m_MachineCode.length(); i++) { mcfg.m_MachineCodeAss[i] = mcfg.m_MachineCode[i]; } if (!ins.empty()) { SQLite::Transaction transaction(*m_pDB); for (size_t insIndex = 0; insIndex < ins.size(); insIndex++) { m_pDB->exec(ins[insIndex]); } transaction.commit(); } } void MachineCfgDao::Save(MachineCfg& mcfg) { vector ups; mcfg.GetUpdateSql(ups); for (size_t i = 0; i < ups.size(); ++i) { m_pDB->exec(ups[i]); } } void MachineCfgDao::Export(MachineCfg& mcfg, stringstream &sql) { vector ups; mcfg.GetUpdateSql(ups); for (size_t i = 0; i < ups.size(); ++i) { sql<