/************************************************************* /* Copyright (C), 2014-2020, lyfz. Co., Ltd. /* 文件名: AdoImpl.h /* 作者: Jeff.w /* 创建日期: 2014-08-16 /* 版本号: V1.0 /* 描述: 核心层底,数据库ADO编程 /* 其它: /* 主要类模块: /* 历史修改记录: /* 作者 时间 版本 描述 /* Jeff.w 14/08/18 1.0 创建这个模块 ***************************************************************/ #ifndef __ADO_IMPL_HEADER__ #define __ADO_IMPL_HEADER__ #pragma once //#include //随存随取,使用vector比较好; #include using namespace std; #include "AdoDef.h" #include "ADODatabase.h" #include "ADORecordset.h" #include "ADOCommand.h" // Jeff.一个数据库只有一个AdoImpl实例; // 该类使用线程,监测线程的作用是判断数据库是否断开并重连; // 未对二进制文件支持操作; class AdoImpl { public: AdoImpl(void); virtual ~AdoImpl(void); void SetConnectString(IN const int &nType,IN const STAdoDatabaseInfo &tagAodDatabaseInfo); bool opendatabase(IN const TCHAR *pConnectString=NULL); void closedatabase(); int Execute(TCHAR *pSQL);//不返回记录集; bool GetADODateBaseStatus(); CADODatabase *GetAdoDatabase(){return m_pADODatabase;}; DWORD GetTableRecordCount(__in const TCHAR *pTableName); // 返回要查询的表的记录数; int GetClientServiceViewData(__in const TCHAR *pSQL, __out CArray& strArray,__in const TCHAR *pfilter=NULL); INT GetClientServiceViewDataEx(__in const TCHAR *pSQL, __out CArray& strArray,__in const TCHAR *pfilter=NULL); private: CRITICAL_SECTION m_csAdo; TCHAR m_szConnectString[1024];// 暂使用1024魔数,后期升级再定义; CADODatabase *m_pADODatabase; bool OpenADORecordSet(CADORecordset *pRSet,const TCHAR *pSQL); void CloseADORecordSet(CADORecordset* pRSet); void DeleteADORecordSet(CADORecordset* pRSet); }; #endif