| 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);	}}
 |