ADOBaseImpl.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #ifndef __ADO_IMPL_HEADER_20150822__
  2. #define __ADO_IMPL_HEADER_20150822__
  3. /*************************************************************
  4. /* Copyright (C), 2014-2020, lyfz. Co., Ltd.
  5. /* 文件名: **.h
  6. /* 作者: Jeff.w
  7. /* 创建日期: 2015-08-22
  8. /* 版本号: V1.0
  9. /* 描述: 数据库统一接口
  10. /* 其它:
  11. /* 主要类模块:
  12. /* 历史修改记录:
  13. /* 作者 时间 版本 描述
  14. /* Jeff.w 15/08/22 1.0 创建这个模块
  15. ***************************************************************/
  16. #pragma once
  17. #include "ADODatabase.h"
  18. #include "ADORecordset.h"
  19. typedef struct __ST_DATABASEINFO__
  20. {
  21. //TCHAR szProvider[MAX_PATH]; // 数据库引擎;
  22. TCHAR szDataSource[MAX_PATH]; // 数据库源地址;
  23. TCHAR szDatabaseTCPPort[MAX_PATH]; // 数据库TCP端口;
  24. TCHAR szDatabaseAccount[MAX_PATH]; // 数据库登录账户;
  25. TCHAR szDatabasePassword[MAX_PATH]; // 数据库账户密码;
  26. TCHAR szDatabaseName[MAX_PATH]; // 数据库名称; Initial Catalog
  27. TCHAR szDatabaseFile[MAX_PATH]; // 数据库文件; 用于Access之类的桌面数据库,不用于网络;
  28. __ST_DATABASEINFO__()
  29. {
  30. memset(szDataSource,0,sizeof(TCHAR)*MAX_PATH);
  31. memset(szDatabaseTCPPort,0,sizeof(TCHAR)*MAX_PATH);
  32. memset(szDatabaseAccount,0,sizeof(TCHAR)*MAX_PATH);
  33. memset(szDatabasePassword,0,sizeof(TCHAR)*MAX_PATH);
  34. memset(szDatabaseName,0,sizeof(TCHAR)*MAX_PATH);
  35. memset(szDatabaseFile,0,sizeof(TCHAR)*MAX_PATH);
  36. }
  37. }STDatabaseInfo,*pSTDatabaseInfo;
  38. class CADOBaseImpl
  39. {
  40. protected:
  41. BOOL m_bOpen;
  42. CRITICAL_SECTION m_csAdo;
  43. CADODatabase *m_pADODatabase;
  44. TCHAR m_szConnectString[1024];
  45. public:
  46. CADOBaseImpl(void);
  47. ~CADOBaseImpl(void);
  48. public:
  49. // 打开数据库;
  50. BOOL OpenCatalog(IN STDatabaseInfo& dbInfo) ;
  51. // 关闭数据库;
  52. void CloseCatalog() ;
  53. // 执行SQL语句;
  54. INT Execute(IN LPCTSTR lpExcSQL);
  55. // 返回表记录大小;
  56. INT GetTblRecordCount(IN LPCTSTR lpTblName, IN LPCTSTR lpFilters);
  57. // 获取数据库连接状态;
  58. BOOL IsOpen() ;
  59. public:
  60. BOOL GetADODateBaseStatus();
  61. BOOL OpenADORecordSet(IN CADORecordset *pRSet, IN LPCTSTR lpSQL);
  62. void CloseADORecordSet(IN CADORecordset* pRSet);
  63. void DeleteADORecordSet(IN CADORecordset* pRSet);
  64. };
  65. #endif