123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- #include "stdafx.h"
- #include "elementDB.h"
- #include "elementTable.h"
- #include <DBStoreBase.h>
- namespace OTSClassifyEngine
- {
- CElementDB::CElementDB(CDBStoreBasePtr a_datastore)
- {
- m_tableInfo.reset(new CElementTable());
- myDB = CreateNewSQLiteDB(a_datastore,m_tableInfo);
- }
- CElementDB::~CElementDB()
- {
- }
- BOOL CElementDB::GetElements(CStandardItemPtr& pSTDMineral)
- {
- 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 from %s where mineralID = %d order by %s"),
- tableInfoPtr->GetColumnName((int)CElementTable::ColumnID::N_MINERALID - (int)CElementTable::ColumnID::MIN),
- tableInfoPtr->GetColumnName((int)CElementTable::ColumnID::N_ID - (int)CElementTable::ColumnID::MIN),
- tableInfoPtr->GetColumnName((int)CElementTable::ColumnID::F_PERCENTAGE - (int)CElementTable::ColumnID::MIN),
- tableInfoPtr->GetTableName(),
- pSTDMineral->GetID(),
- tableInfoPtr->GetColumnName((int)CElementTable::ColumnID::N_MINERALID - (int)CElementTable::ColumnID::MIN));
- auto query = datastorePtr->QueryByCommand(strSql);
- if (!query || !query->IsValid())
- {
- return FALSE;
- }
- int iElementID = 0;
- double dPercentage = 0;
- while (!query->IsEOF())
- {
- CElement element;
- iElementID = query->GetColIntValue(1);
- dPercentage = query->GetColFloatValue(2);
- element.SetAtomNum(iElementID);
- element.SetPercentage(dPercentage);
- pSTDMineral->AddElement(element);
- query->NextRow();
- }
- return TRUE;
- }
- CDBTableBasePtr CElementDB::GetTableInfo()
- {
- /*if (!m_tableInfo)
- {
- m_tableInfo.reset(new CElementTable);
- }*/
- return m_tableInfo;
- }
- BOOL CElementDB::Init(const BOOL a_bClean /*= FALSE*/)
- {
- return myDB->Init(a_bClean);
- }
- BOOL CElementDB::CreateTable(const BOOL a_bForce /*= FALSE*/)
- {
- return myDB->CreateTable(a_bForce);
- }
- BOOL CElementDB::DeleteTable()
- {
- return myDB->DeleteTable();
- }
- BOOL CElementDB::RemoveAllRows()
- {
- return myDB->RemoveAllRows();
- }
- BOOL CElementDB::IsDBExist()
- {
- return myDB->IsDBExist();
- }
- OTSSQLITE::CDBStoreBasePtr CElementDB::GetDatastore()
- {
- return myDB->GetDatastore();
- }
- OTSSQLITE::CDBQueryBasePtr CElementDB::GetTableQuery(LPCTSTR a_sOrderColumnName /*= nullptr*/)
- {
- return myDB->GetTableQuery(a_sOrderColumnName);
- }
- }
|