59 lines
1.8 KiB
C++
59 lines
1.8 KiB
C++
#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;
|
|
}
|
|
}
|