Files

224 lines
6.0 KiB
C
Raw Permalink Normal View History

2026-03-03 13:56:44 +08:00
#ifndef DATA_BASE_ENGINE_HEAD_FILE
#define DATA_BASE_ENGINE_HEAD_FILE
#pragma once
//<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD>
#include "KernelEngineHead.h"
#include "KernelEngine.h"
#include "QueueService.h"
//////////////////////////////////////////////////////////////////////////
//ADO <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
class CADOError : public IDataBaseException
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
protected:
enSQLException m_enErrorType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CString m_strErrorDescribe; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CADOError();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual ~CADOError();
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
public:
//<2F>ͷŶ<CDB7><C5B6><EFBFBD>
virtual void __cdecl Release() { return ; }
//<2F>ӿڲ<D3BF>ѯ
virtual void * __cdecl QueryInterface(const IID & Guid, DWORD dwQueryVer);
//<2F><><EFBFBD>ܽӿ<DCBD>
public:
//<2F><EFBFBD><ECB3A3><EFBFBD><EFBFBD>
virtual HRESULT __cdecl GetExceptionResult(){return 0;};
//<2F><EFBFBD><ECB3A3><EFBFBD><EFBFBD>
virtual enSQLException __cdecl GetExceptionType() { return m_enErrorType; }
//<2F><EFBFBD><ECB3A3><EFBFBD><EFBFBD>
virtual LPCTSTR __cdecl GetExceptionDescribe(){ return m_strErrorDescribe; }
//<2F><><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD>
public:
//<2F><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>
void SetErrorInfo(enSQLException enErrorType, LPCTSTR pszDescribe);
};
//////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>
class KERNEL_ENGINE_CLASS CDataBase : public IDataBase
{
//<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
protected:
CADOError m_ADOError; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CString m_strConnect; //<2F><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
CString m_strErrorDescribe; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
//״̬<D7B4><CCAC><EFBFBD><EFBFBD>
protected:
DWORD m_dwConnectCount; //<2F><><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>
DWORD m_dwConnectErrorTime; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
const DWORD m_dwResumeConnectCount; //<2F>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>
const DWORD m_dwResumeConnectTime; //<2F>ָ<EFBFBD>ʱ<EFBFBD><CAB1>
//<2F>ں˱<DABA><CBB1><EFBFBD>
protected:
_CommandPtr m_DBCommand; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_RecordsetPtr m_DBRecordset; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_ConnectionPtr m_DBConnection; //<2F><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CDataBase();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual ~CDataBase();
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
public:
//<2F>ͷŶ<CDB7><C5B6><EFBFBD>
virtual void __cdecl Release() {delete this; }
//<2F>ӿڲ<D3BF>ѯ
virtual void * __cdecl QueryInterface(const IID & Guid, DWORD dwQueryVer);
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void __cdecl OpenConnection();
//<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>
virtual void __cdecl CloseConnection();
virtual bool __cdecl SetConnectionInfo(DWORD dwDBAddr, WORD wPort, LPCTSTR szDBName, LPCTSTR szUser, LPCTSTR szPassword);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
virtual bool __cdecl SetConnectionInfo(LPCTSTR szDBAddr, WORD wPort, LPCTSTR szDBName, LPCTSTR szUser, LPCTSTR szPassword);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual VOID __cdecl ClearParameters();
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
virtual VOID __cdecl GetParameter(LPCTSTR pszParamName, CDBVarValue & DBVarValue);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual VOID __cdecl AddParameter(LPCTSTR pszName, DataTypeEnum Type, ParameterDirectionEnum Direction, LONG lSize, CDBVarValue & DBVarValue);
//<2F>л<EFBFBD><D0BB><EFBFBD>¼
virtual VOID __cdecl NextRecordset();
//<2F>رռ<D8B1>¼
virtual VOID __cdecl CloseRecordset();
//<2F>󶨶<EFBFBD><F3B6A8B6><EFBFBD>
virtual VOID __cdecl BindToRecordset(CADORecordBinding * pBind);
//<2F><>¼<EFBFBD>ӿ<EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>
virtual VOID __cdecl MoveToNext();
//<2F>Ƶ<EFBFBD><C6B5><EFBFBD>ͷ
virtual VOID __cdecl MoveToFirst();
//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
virtual bool __cdecl IsRecordsetEnd();
//<2F><>ȡ<EFBFBD><C8A1>Ŀ
virtual LONG __cdecl GetRecordCount();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
virtual LONG __cdecl GetReturnValue();
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
virtual VOID __cdecl GetRecordsetValue(LPCTSTR pszItem, CDBVarValue & DBVarValue);
//<2F><><EFBFBD>ƽӿ<C6BD>
public:
//<2F><EFBFBD><E6B4A2><EFBFBD><EFBFBD>
virtual VOID __cdecl ExecuteProcess(LPCTSTR pszSPName, bool bRecordset);
//ִ<><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual VOID __cdecl ExecuteSentence(LPCTSTR pszCommand, bool bRecordset);
public:
//<2F>ӿں<D3BF><DABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õĺ<C3B5><C4BA><EFBFBD>
//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
virtual bool __cdecl IsRecordsetOpened();
//<2F>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
LPCTSTR GetComErrorDescribe(CComError & ComError);
//<2F><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>
void SetErrorInfo(enSQLException enErrorType, LPCTSTR pszDescribe);
public:
//<2F><><EFBFBD>ô洢<C3B4><E6B4A2><EFBFBD><EFBFBD>
virtual void __cdecl SetSPName(LPCTSTR pszSpName);
virtual bool __cdecl ExecuteCommand(bool bRecordset);
//<2F>ֶνӿ<CEBD>
public:
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
virtual bool __cdecl GetFieldValue(LPCTSTR lpFieldName, BYTE & bValue);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
virtual bool __cdecl GetFieldValue(LPCTSTR lpFieldName, WORD & wValue);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
virtual bool __cdecl GetFieldValue(LPCTSTR lpFieldName, INT & nValue);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
virtual bool __cdecl GetFieldValue(LPCTSTR lpFieldName, LONG & lValue);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
virtual bool __cdecl GetFieldValue(LPCTSTR lpFieldName, DWORD & ulValue);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
virtual bool __cdecl GetFieldValue(LPCTSTR lpFieldName, UINT & ulValue);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
virtual bool __cdecl GetFieldValue(LPCTSTR lpFieldName, DOUBLE & dbValue);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
virtual bool __cdecl GetFieldValue(LPCTSTR lpFieldName, __int64 & llValue);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
virtual bool __cdecl GetFieldValue(LPCTSTR lpFieldName, TCHAR szBuffer[], UINT uSize);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
virtual bool __cdecl GetFieldValue(LPCTSTR lpFieldName, COleDateTime & Time);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
virtual bool __cdecl GetFieldValue(LPCTSTR lpFieldName, bool & bValue);
//ִ<>нӿ<D0BD>
public:
//ִ<><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual bool __cdecl Execute(LPCTSTR pszCommand);
virtual void __cdecl ExecuteSql(LPCTSTR sql,LONG DBValue);
};
//////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
class CDataBaseEngine : public IDataBaseEngine
{
//<2F>ں˱<DABA><CBB1><EFBFBD>
protected:
bool m_bService; //<2F><><EFBFBD>б<EFBFBD>־
IDataBaseEngineSink * m_pIDataBaseEngineSink; //֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CDataBaseEngine(void);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual ~CDataBaseEngine(void);
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
public:
//<2F>ͷŶ<CDB7><C5B6><EFBFBD>
virtual void __cdecl Release() {delete this; }
//<2F>ӿڲ<D3BF>ѯ
virtual void * __cdecl QueryInterface(const IID & Guid, DWORD dwQueryVer);
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual bool __cdecl StartService();
//ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
virtual bool __cdecl ConcludeService();
virtual bool __cdecl SetDataBaseEngineSink(IUnknownEx * pIUnknownEx);
//<2F><><EFBFBD>нӿ<D0BD>
public:
//ʱ<><CAB1><EFBFBD>¼<EFBFBD>
virtual bool __cdecl PostDataBaseTimer(DWORD dwTimerID, WPARAM dwBindParameter);
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
virtual bool __cdecl PostDataBaseControl(WORD wControlID, VOID * pData, WORD wDataSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
virtual bool __cdecl PostDataBaseRequest(WORD wRequestID, DWORD dwContextID, VOID * pData, WORD wDataSize);
};
//////////////////////////////////////////////////////////////////////////
#endif