CatalogObj.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /************************************************************************/
  2. /*
  3. 版权所有: (C)2015, 利亚方舟科技有限公司。
  4. 文件名称: CatalogObj.h
  5. 文件标识:
  6. 内容摘要: 数据库操作单元对象类
  7. 其他说明:
  8. 当前版本: V1.0
  9. 作 者: Jeff
  10. 完成日期: 2015/04/22
  11. 修改记录:
  12. 修改日期:
  13. 版 本 号:
  14. 修 改 人:
  15. 修改内容:
  16. */
  17. /************************************************************************/
  18. #ifndef _CATALOG_OBJ_HEAD_
  19. #define _CATALOG_OBJ_HEAD_
  20. #include <afxdb.h> // CDatabase类头文件;
  21. #include <vector>
  22. using namespace std;
  23. #pragma once
  24. #define MAX_DB_SIZE 7
  25. class CCatalogObj
  26. {
  27. public:
  28. CCatalogObj(void);
  29. virtual ~CCatalogObj(void);
  30. private:
  31. BOOL m_bOpen;
  32. TCHAR m_szConnectString[MAX_PATH];
  33. CDatabase *m_pdbInstance;
  34. CString m_strConnectErrorDescriptor;
  35. CRITICAL_SECTION m_CriticalSection;
  36. protected:
  37. BOOL m_bSolve;
  38. static BOOL m_bEndofThread;
  39. HANDLE m_hWaitableTimer;
  40. HANDLE m_hReConnectEvent;
  41. HANDLE m_hReConnectThread;
  42. // 重连线程;
  43. static DWORD WINAPI ReConnectDatabaseThread(IN LPVOID lpPara);
  44. // DB错误处理;
  45. BOOL SolveDBError(IN CONST DWORD &dwError, IN LPCTSTR lpErrorString = NULL);
  46. public:
  47. // 执行SQL语句,不返回记录集;
  48. BOOL Execute(IN LPCTSTR lpSQL);
  49. // 获取查询记录数;
  50. int GetSelectCount(IN LPCTSTR lpTableName, IN LPCTSTR lpFilter);
  51. // 获取记录集结果;
  52. BOOL GetTableValues(IN LPCTSTR lpTableName, IN LPCTSTR lpFilter, IN CStringArray &AryOfFields, OUT CArray<CStringArray,CStringArray> &AryOfValues);
  53. public:
  54. int StartThread();
  55. int EndofThread();
  56. inline const BOOL IsOpen()
  57. {
  58. return m_bOpen;
  59. }
  60. inline const CString& GetConnectErrorDescriptor() const
  61. {
  62. return m_strConnectErrorDescriptor;
  63. }
  64. inline LPCTSTR GetConnectString()const
  65. {
  66. return m_szConnectString;
  67. }
  68. BOOL OpenCatalog(IN LPCTSTR lpSQLConnectString = NULL);
  69. void CloseCatalog();
  70. inline const CDatabase *GetCatalogInstance(){return m_pdbInstance;}
  71. inline void SetConn(IN LPCTSTR lpConn)
  72. {
  73. if(lpConn && _tcscmp(lpConn,_T("")) != 0)
  74. _stprintf_s(m_szConnectString,_T("%s"),lpConn);
  75. }
  76. };
  77. #endif