98 lines
4.2 KiB
C++
98 lines
4.2 KiB
C++
|
#include "TimePowerCompensateDao.h"
|
||
|
|
||
|
|
||
|
|
||
|
TimePowerCompensateDao::TimePowerCompensateDao(SQLite::Database* pdb) :BaseDao(pdb)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
|
||
|
TimePowerCompensateDao::~TimePowerCompensateDao()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void TimePowerCompensateDao::CreateTable()
|
||
|
{
|
||
|
if (m_pDB->tableExists(TimePowerCompensate::TABLE_NAME))return;
|
||
|
|
||
|
char buffer[1024];
|
||
|
string createsql = "CREATE TABLE %s(%s INTEGER PRIMARY KEY,%s INTEGER,%s INTEGER,%s INTEGER,%s FLOAT)";
|
||
|
sprintf_s(buffer, sizeof(buffer), createsql.c_str(), TimePowerCompensate::TABLE_NAME.c_str(),
|
||
|
TimePowerCompensate::FIELD_ID.c_str(),TimePowerCompensate::FIELD_CNO.c_str(), TimePowerCompensate::FIELD_START_MINUTE.c_str(),
|
||
|
TimePowerCompensate::FIELD_END_MINUTE.c_str(), TimePowerCompensate::FIELD_COMPENSATE.c_str());
|
||
|
m_pDB->exec(buffer);
|
||
|
}
|
||
|
|
||
|
void TimePowerCompensateDao::Find(int cno, TimePowerCompensateCfg& tps)
|
||
|
{
|
||
|
char buffer[1024];
|
||
|
string selectSql = "SELECT %s,%s,%s,%s,%s FROM %s WHERE %s=%d ORDER BY %s";
|
||
|
sprintf_s(buffer, sizeof(buffer), selectSql.c_str(), TimePowerCompensate::FIELD_ID.c_str(),TimePowerCompensate::FIELD_CNO.c_str(), TimePowerCompensate::FIELD_START_MINUTE.c_str(),
|
||
|
TimePowerCompensate::FIELD_END_MINUTE.c_str(), TimePowerCompensate::FIELD_COMPENSATE.c_str(), TimePowerCompensate::TABLE_NAME.c_str(),
|
||
|
TimePowerCompensate::FIELD_CNO.c_str(),cno,TimePowerCompensate::FIELD_START_MINUTE.c_str());
|
||
|
SQLite::Statement mtcquery(*m_pDB, buffer);
|
||
|
while (mtcquery.executeStep()) {
|
||
|
TimePowerCompensate* tpc = new TimePowerCompensate();
|
||
|
tpc->m_ID = mtcquery.getColumn(TimePowerCompensate::FIELD_ID.c_str()).getInt();
|
||
|
tpc->m_Cno = mtcquery.getColumn(TimePowerCompensate::FIELD_CNO.c_str()).getInt();
|
||
|
tpc->m_StartMinute = mtcquery.getColumn(TimePowerCompensate::FIELD_START_MINUTE.c_str()).getUInt();
|
||
|
tpc->m_EndMinute = mtcquery.getColumn(TimePowerCompensate::FIELD_END_MINUTE.c_str()).getUInt();
|
||
|
tpc->m_Compensate =(float) mtcquery.getColumn(TimePowerCompensate::FIELD_COMPENSATE.c_str()).getDouble();
|
||
|
tps.m_TimePowerCompensates.push_back(tpc);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void TimePowerCompensateDao::Save(int cno,TimePowerCompensateCfg& tps)
|
||
|
{
|
||
|
char buffer[512];
|
||
|
sprintf_s(buffer, sizeof(buffer), "DELETE FROM %s WHERE %s=%d", TimePowerCompensate::TABLE_NAME.c_str(),TimePowerCompensate::FIELD_CNO.c_str(),cno);
|
||
|
m_pDB->exec(string(buffer));
|
||
|
string strtemp = "INSERT INTO %s(%s,%s,%s,%s) VALUES(";
|
||
|
sprintf_s(buffer, sizeof(buffer), strtemp.c_str(),
|
||
|
TimePowerCompensate::TABLE_NAME.c_str(),
|
||
|
TimePowerCompensate::FIELD_CNO.c_str(),
|
||
|
TimePowerCompensate::FIELD_START_MINUTE.c_str(),
|
||
|
TimePowerCompensate::FIELD_END_MINUTE.c_str(),
|
||
|
TimePowerCompensate::FIELD_COMPENSATE.c_str()
|
||
|
);
|
||
|
string strsql = string(buffer) + "%d,%u,%u,%f)";
|
||
|
for (size_t i = 0; i < tps.m_TimePowerCompensates.size(); ++i) {
|
||
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(),cno, tps.m_TimePowerCompensates[i]->m_StartMinute, tps.m_TimePowerCompensates[i]->m_EndMinute, tps.m_TimePowerCompensates[i]->m_Compensate);
|
||
|
m_pDB->exec(string(buffer));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void TimePowerCompensateDao::Export(int cno, TimePowerCompensateCfg& cfg, std::stringstream &sql)
|
||
|
{
|
||
|
char buffer[512];
|
||
|
sprintf_s(buffer, sizeof(buffer), "DELETE FROM %s WHERE %s=%d", TimePowerCompensate::TABLE_NAME.c_str(), TimePowerCompensate::FIELD_CNO.c_str(), cno);
|
||
|
sql << string(buffer) + "\n";
|
||
|
string strtemp = "INSERT INTO %s(%s,%s,%s,%s) VALUES(";
|
||
|
sprintf_s(buffer, sizeof(buffer), strtemp.c_str(),
|
||
|
TimePowerCompensate::TABLE_NAME.c_str(),
|
||
|
TimePowerCompensate::TABLE_NAME.c_str(),
|
||
|
TimePowerCompensate::FIELD_CNO.c_str(),
|
||
|
TimePowerCompensate::FIELD_START_MINUTE.c_str(),
|
||
|
TimePowerCompensate::FIELD_END_MINUTE.c_str(),
|
||
|
TimePowerCompensate::FIELD_COMPENSATE.c_str()
|
||
|
);
|
||
|
string strsql = string(buffer) + "%d,%u,%u,%f)";
|
||
|
for (size_t i = 0; i < cfg.m_TimePowerCompensates.size(); ++i) {
|
||
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), cno, cfg.m_TimePowerCompensates[i]->m_StartMinute, cfg.m_TimePowerCompensates[i]->m_EndMinute, cfg.m_TimePowerCompensates[i]->m_Compensate);
|
||
|
sql << string(buffer) + "\n";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void TimePowerCompensateDao::Import(std::string &sql)
|
||
|
{
|
||
|
std::stringstream ss(sql);
|
||
|
string cmd;
|
||
|
getline(ss, cmd);
|
||
|
if (cmd.find(TimePowerCompensate::TABLE_NAME) == string::npos)
|
||
|
return;
|
||
|
do {
|
||
|
m_pDB->exec(cmd);
|
||
|
} while (getline(ss, cmd));
|
||
|
}
|
||
|
|