GrpcPrint/PrintS/Config/dao/HbdLanguageDao.cpp

59 lines
1.8 KiB
C++
Raw Normal View History

2024-03-19 17:45:12 +08:00
#include "HbdLanguageDao.h"
#include "../../utils/StringHelper.h"
#include <map>
HbdLanguageDao::HbdLanguageDao(SQLite::Database* pdb):BaseDao(pdb)
{
}
HbdLanguageDao::~HbdLanguageDao()
{
}
void HbdLanguageDao::CreateTable()
{
if (m_pDB->tableExists(HbdLanguage::TABLE_NAME))return;
char buffer[1024];
memset(buffer, '\0', sizeof(buffer));
string createsql = "CREATE TABLE %s(%s INTEGER PRIMARY KEY,%s VARCHAR(50),%s VARCHAR(50),%s VARCHAR(50))";
sprintf_s(buffer, sizeof(buffer), createsql.c_str(),
HbdLanguage::TABLE_NAME.c_str(),
HbdLanguage::FIELD_ID.c_str(),
HbdLanguage::FIELD_CODE.c_str(),
HbdLanguage::FIELD_CONTENT.c_str(),
HbdLanguage::FIELD_FILE_NAME.c_str()
);
SQLite::Transaction transaction(*m_pDB);
m_pDB->exec(buffer);
vector<string> insertSql;
HbdLanguage::Generate(insertSql);
for (size_t i=0;i<insertSql.size();++i)
{
m_pDB->exec(insertSql[i]);
}
transaction.commit();
}
void HbdLanguageDao::Find(map<int, HbdLanguage*>& LanguageMap)
{
char buffer[1024];
string strsql = "SELECT %s,%s,%s,%s FROM %s";
sprintf_s(buffer, sizeof(buffer), strsql.c_str(),
HbdLanguage::FIELD_ID.c_str(),
HbdLanguage::FIELD_CODE.c_str(),
HbdLanguage::FIELD_CONTENT.c_str(),
HbdLanguage::FIELD_FILE_NAME.c_str(),
HbdLanguage::TABLE_NAME.c_str());
SQLite::Statement query(*m_pDB, buffer);
while (query.executeStep()) {
HbdLanguage* language = new HbdLanguage();
language->m_id = query.getColumn(HbdLanguage::FIELD_ID.c_str()).getInt();
language->m_code = query.getColumn(HbdLanguage::FIELD_CODE.c_str()).getString();
language->m_content = query.getColumn(HbdLanguage::FIELD_CONTENT.c_str()).getString();
language->m_fileName = query.getColumn(HbdLanguage::FIELD_FILE_NAME.c_str()).getString();
LanguageMap[language->m_id] = language;
}
}