| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- #pragma once
- #include "stdafx.h"
- #include "OTSSTDLib.h"
- #include "mineralgroupTable.h"
- #include "mineralgroupDB.h"
- using namespace OTSSQLITE;
- namespace OTSClassifyEngine
- {
- CMineralGroupDB::CMineralGroupDB(CDBStoreBasePtr a_datastore)
- {
- m_tableInfo.reset(new CMineralGroupTable());
- myDB = CreateNewSQLiteDB(a_datastore,m_tableInfo);
- }
- CMineralGroupDB::~CMineralGroupDB()
- {
- }
- BOOL CMineralGroupDB::GetMineralGroups(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)CMineralGroupTable::ColumnID::N_ID - (int)CMineralGroupTable::ColumnID::MIN),
- tableInfoPtr->GetColumnName((int)CMineralGroupTable::ColumnID::S_NAME - (int)CMineralGroupTable::ColumnID::MIN),
- tableInfoPtr->GetColumnName((int)CMineralGroupTable::ColumnID::N_COLOR - (int)CMineralGroupTable::ColumnID::MIN),
- tableInfoPtr->GetColumnName((int)CMineralGroupTable::ColumnID::N_ORDER - (int)CMineralGroupTable::ColumnID::MIN),
- tableInfoPtr->GetTableName(),
- tableInfoPtr->GetColumnName((int)CMineralGroupTable::ColumnID::N_ORDER - (int)CMineralGroupTable::ColumnID::MIN));
- auto query = datastorePtr->QueryByCommand(strSql);
- if (!query || !query->IsValid())
- {
- return FALSE;
- }
- if (query->GetColCount() != 4)
- {
- return FALSE;
- }
- return GetMineralGroups(query, pOretype);
- }
- BOOL CMineralGroupDB::GetMineralGroups(CDBQueryBasePtr a_query, CSTDLibPtr pOretype)
- {
- while (!a_query->IsEOF())
- {
- CClassifyPtr pClassify = GetMineralGroup(a_query);
- pOretype->AddClassify(pClassify.get());
- a_query->NextRow();
- }
- return true;
- }
- CClassifyPtr CMineralGroupDB::GetMineralGroup(CDBQueryBasePtr a_query)
- {
- int iCol = 0;
- int iValue = 0;
- CString strValue = "";
- CClassifyPtr pClassify = CClassifyPtr(new CClassify());
- iCol = (int)CMineralGroupTable::ColumnID::N_ID - (int)CMineralGroupTable::ColumnID::MIN;
- iValue = a_query->GetColIntValue(iCol, 0);
- pClassify->SetID(iValue);
- iCol = (int)CMineralGroupTable::ColumnID::S_NAME - (int)CMineralGroupTable::ColumnID::MIN;
- strValue = a_query->GetColStringValue(iCol, "");
- pClassify->SetName(strValue);
- iCol = (int)CMineralGroupTable::ColumnID::N_COLOR - (int)CMineralGroupTable::ColumnID::MIN;
- iValue = a_query->GetColIntValue(iCol, 0);
- pClassify->SetColor(iValue);
- iCol = (int)CMineralGroupTable::ColumnID::N_ORDER - (int)CMineralGroupTable::ColumnID::MIN;
- iValue = a_query->GetColIntValue(iCol, 0);
- pClassify->SetOrder(iValue);
- return pClassify;
- }
- CDBTableBasePtr CMineralGroupDB::GetTableInfo()
- {
- /*if (!m_tableInfo)
- {
- m_tableInfo.reset(new CMineralGroupTable);
- }*/
- return m_tableInfo;
- }
- BOOL CMineralGroupDB::Init(const BOOL a_bClean /*= FALSE*/)
- {
- return myDB->Init(a_bClean);
- }
- BOOL CMineralGroupDB::CreateTable(const BOOL a_bForce /*= FALSE*/)
- {
- return myDB->Init(a_bForce);
- }
- BOOL CMineralGroupDB::DeleteTable()
- {
- return myDB->DeleteTable();
- }
- BOOL CMineralGroupDB::RemoveAllRows()
- {
- return myDB->RemoveAllRows();
- }
- BOOL CMineralGroupDB::IsDBExist()
- {
- return myDB->IsDBExist();
- }
- OTSSQLITE::CDBStoreBasePtr CMineralGroupDB::GetDatastore()
- {
- return myDB->GetDatastore();
- }
- OTSSQLITE::CDBQueryBasePtr CMineralGroupDB::GetTableQuery(LPCTSTR a_sOrderColumnName /*= nullptr*/)
- {
- return myDB->GetTableQuery();
- }
- }
|