AdoImpl.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /*************************************************************
  2. /* Copyright (C), 2014-2020, lyfz. Co., Ltd.
  3. /* 文件名: AdoImpl.h
  4. /* 作者: Jeff.w
  5. /* 创建日期: 2014-08-16
  6. /* 版本号: V1.0
  7. /* 描述: 核心层底,数据库ADO编程
  8. /* 其它:
  9. /* 主要类模块:
  10. /* 历史修改记录:
  11. /* 作者 时间 版本 描述
  12. /* Jeff.w 14/08/18 1.0 创建这个模块
  13. ***************************************************************/
  14. #ifndef __ADO_IMPL_HEADER__
  15. #define __ADO_IMPL_HEADER__
  16. #pragma once
  17. //#include <list>//随存随取,使用vector比较好;
  18. #include <vector>
  19. using namespace std;
  20. #include "AdoDef.h"
  21. #include "ADODatabase.h"
  22. #include "ADORecordset.h"
  23. #include "ADOCommand.h"
  24. // Jeff.一个数据库只有一个AdoImpl实例;
  25. // 该类使用线程,监测线程的作用是判断数据库是否断开并重连;
  26. // 未对二进制文件支持操作;
  27. class AdoImpl
  28. {
  29. public:
  30. AdoImpl(void);
  31. virtual ~AdoImpl(void);
  32. void SetConnectString(IN const int &nType,IN const STAdoDatabaseInfo &tagAodDatabaseInfo);
  33. bool opendatabase(IN const TCHAR *pConnectString=NULL);
  34. void closedatabase();
  35. int Execute(TCHAR *pSQL);//不返回记录集;
  36. bool GetADODateBaseStatus();
  37. CADODatabase *GetAdoDatabase(){return m_pADODatabase;};
  38. DWORD GetTableRecordCount(__in const TCHAR *pTableName); // 返回要查询的表的记录数;
  39. int GetClientServiceViewData(__in const TCHAR *pSQL, __out CArray<CStringArray,CStringArray>& strArray,__in const TCHAR *pfilter=NULL);
  40. INT GetClientServiceViewDataEx(__in const TCHAR *pSQL, __out CArray<CStringArray,CStringArray>& strArray,__in const TCHAR *pfilter=NULL);
  41. private:
  42. CRITICAL_SECTION m_csAdo;
  43. TCHAR m_szConnectString[1024];// 暂使用1024魔数,后期升级再定义;
  44. CADODatabase *m_pADODatabase;
  45. bool OpenADORecordSet(CADORecordset *pRSet,const TCHAR *pSQL);
  46. void CloseADORecordSet(CADORecordset* pRSet);
  47. void DeleteADORecordSet(CADORecordset* pRSet);
  48. };
  49. #endif