123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- #pragma once
- #include "stdafx.h"
- #include "OTSSTDLib.h"
- #include "STDGroupTable.h"
- #include "STDGroupDB.h"
- using namespace OTSSQLITE;
- namespace OTSClassifyEngine
- {
- CSTDGroupDB::CSTDGroupDB(CDBStoreBasePtr a_datastore)
- {
- m_tableInfo.reset(new CSTDGroupTable());
- myDB = CreateNewSQLiteDB(a_datastore,m_tableInfo);
- }
- CSTDGroupDB::~CSTDGroupDB()
- {
- }
- BOOL CSTDGroupDB::GetSTDGroups(CSTDLibPtr pOretype)
- {
- auto datastorePtr = GetDatastore();
- auto tableInfoPtr = GetTableInfo();
- if (!datastorePtr || !tableInfoPtr)
- {
- return FALSE;
- }
- CString sTableName = tableInfoPtr->GetTableName();
- if (!datastorePtr->IsTableExists(sTableName))
- {
- return FALSE;
- }
- CString strSql = _T("");
- strSql.Format(_T("select %s, %s, %s, %s from %s order by %s"),
- tableInfoPtr->GetColumnName((int)CSTDGroupTable::ColumnID::N_ID - (int)CSTDGroupTable::ColumnID::MIN),
- tableInfoPtr->GetColumnName((int)CSTDGroupTable::ColumnID::S_NAME - (int)CSTDGroupTable::ColumnID::MIN),
- tableInfoPtr->GetColumnName((int)CSTDGroupTable::ColumnID::S_COLOR - (int)CSTDGroupTable::ColumnID::MIN),
- tableInfoPtr->GetColumnName((int)CSTDGroupTable::ColumnID::N_ORDER - (int)CSTDGroupTable::ColumnID::MIN),
- tableInfoPtr->GetTableName(),
- tableInfoPtr->GetColumnName((int)CSTDGroupTable::ColumnID::N_ORDER - (int)CSTDGroupTable::ColumnID::MIN));
- auto query = datastorePtr->QueryByCommand(strSql);
- if (!query || !query->IsValid())
- {
- return FALSE;
- }
- if (query->GetColCount() != 4)
- {
- return FALSE;
- }
- return GetSTDGroups(query, pOretype);
- }
- BOOL CSTDGroupDB::GetSTDGroups(CDBQueryBasePtr a_query, CSTDLibPtr pOretype)
- {
- while (!a_query->IsEOF())
- {
- CClassifyPtr pClassify = GetSTDGroup(a_query);
- pOretype->AddClassify(pClassify.get());
- a_query->NextRow();
- }
- return true;
- }
- CClassifyPtr CSTDGroupDB::GetSTDGroup(CDBQueryBasePtr a_query)
- {
- int iCol = 0;
- int iValue = 0;
- CString strValue = "";
- CClassifyPtr pClassify = CClassifyPtr(new CClassify());
- iCol = (int)CSTDGroupTable::ColumnID::N_ID - (int)CSTDGroupTable::ColumnID::MIN;
- iValue = a_query->GetColIntValue(iCol, 0);
- pClassify->SetID(iValue);
- iCol = (int)CSTDGroupTable::ColumnID::S_NAME - (int)CSTDGroupTable::ColumnID::MIN;
- strValue = a_query->GetColStringValue(iCol, "");
- pClassify->SetName(strValue);
- iCol = (int)CSTDGroupTable::ColumnID::S_COLOR - (int)CSTDGroupTable::ColumnID::MIN;
- iValue = a_query->GetColIntValue(iCol, 0);
- pClassify->SetColor(iValue);
- iCol = (int)CSTDGroupTable::ColumnID::N_ORDER - (int)CSTDGroupTable::ColumnID::MIN;
- iValue = a_query->GetColIntValue(iCol, 0);
- pClassify->SetOrder(iValue);
- return pClassify;
- }
- CDBTableBasePtr CSTDGroupDB::GetTableInfo()
- {
-
- return m_tableInfo;
- }
- BOOL CSTDGroupDB::Init(const BOOL a_bClean /*= FALSE*/)
- {
- return myDB->Init(a_bClean);
- }
- BOOL CSTDGroupDB::CreateTable(const BOOL a_bForce /*= FALSE*/)
- {
- return myDB->Init(a_bForce);
- }
- BOOL CSTDGroupDB::DeleteTable()
- {
- return myDB->DeleteTable();
- }
- BOOL CSTDGroupDB::RemoveAllRows()
- {
- return myDB->RemoveAllRows();
- }
- BOOL CSTDGroupDB::IsDBExist()
- {
- return myDB->IsDBExist();
- }
- OTSSQLITE::CDBStoreBasePtr CSTDGroupDB::GetDatastore()
- {
- return myDB->GetDatastore();
- }
- OTSSQLITE::CDBQueryBasePtr CSTDGroupDB::GetTableQuery(LPCTSTR a_sOrderColumnName /*= nullptr*/)
- {
- return myDB->GetTableQuery();
- }
- }
|