#include "stdafx.h" #include "CInvalidElement.h" #include "CInvalidElementDB.h" #include "stdafx.h" namespace OTSClassifyEngine { using namespace OTSSQLITE; CInvalidElementDB::CInvalidElementDB(CDBStoreBasePtr a_datastore) { m_tableInfo.reset(new CInvalidElement()); myDB = CreateNewSQLiteDB(a_datastore, m_tableInfo); } CInvalidElementDB::~CInvalidElementDB() { } std::vector& CInvalidElementDB::GetElementNameList() { auto tableInfoPtr = GetTableInfo(); ASSERT(tableInfoPtr); auto query = GetTableQuery(); ASSERT(query); if (!query) { return m_eleNameList; } m_eleNameList=ReadItemList(query); return m_eleNameList; } CDBTableBasePtr CInvalidElementDB::GetTableInfo() { return m_tableInfo; } BOOL CInvalidElementDB::Init(const BOOL a_bClean /*= FALSE*/) { return myDB->Init(a_bClean); } BOOL CInvalidElementDB::IsDBExist() { return myDB->IsDBExist(); } OTSSQLITE::CDBStoreBasePtr CInvalidElementDB::GetDatastore() { return myDB->GetDatastore(); } OTSSQLITE::CDBQueryBasePtr CInvalidElementDB::GetTableQuery(LPCTSTR a_sOrderColumnName /*= nullptr*/) { return myDB->GetTableQuery(a_sOrderColumnName); } std::vector CInvalidElementDB::ReadItemList(CDBQueryBasePtr a_query) { std::vector listItem; int nRowId = 0; int nWrongItems = 0; while (!a_query->IsEOF()) { CString s = ReadItem(a_query);//current x-ray point listItem.push_back(s); a_query->NextRow(); nRowId++; } return listItem; } CString CInvalidElementDB::ReadItem(CDBQueryBasePtr a_query) { int nCol; CString sName; nCol = (int)CInvalidElement::ColumnID::S_Name - (int)CInvalidElement::ColumnID::MIN; sName = a_query->GetColStringValue(nCol, _T("")); return sName; } }