/************************************************************************/ /* 版权所有: (C)2015, 利亚方舟科技有限公司。 文件名称: CatalogObj.h 文件标识: 内容摘要: 数据库操作单元对象类 其他说明: 当前版本: V1.0 作 者: Jeff 完成日期: 2015/04/22 修改记录: 修改日期: 版 本 号: 修 改 人: 修改内容: */ /************************************************************************/ #ifndef _CATALOG_OBJ_HEAD_ #define _CATALOG_OBJ_HEAD_ #include // CDatabase类头文件; #include using namespace std; #pragma once #define MAX_DB_SIZE 7 class CCatalogObj { public: CCatalogObj(void); virtual ~CCatalogObj(void); protected: BOOL m_bOpen; TCHAR m_szConnectString[MAX_PATH]; CDatabase *m_pdbInstance; CString m_strConnectErrorDescriptor; CRITICAL_SECTION m_CriticalSection; BOOL m_bSolve; static BOOL m_bEndofThread; HANDLE m_hWaitableTimer; HANDLE m_hReConnectEvent; HANDLE m_hReConnectThread; // 重连线程; static DWORD WINAPI ReConnectDatabaseThread(IN LPVOID lpPara); // DB错误处理; BOOL SolveDBError(IN CONST DWORD &dwError, IN LPCTSTR lpErrorString = NULL); public: // 执行SQL语句,不返回记录集; BOOL Execute(IN LPCTSTR lpSQL); // 获取查询记录数; int GetSelectCount(IN LPCTSTR lpTableName, IN LPCTSTR lpFilter); // 获取记录集结果; BOOL GetTableValues(IN LPCTSTR lpTableName, IN LPCTSTR lpFilter, IN CStringArray &AryOfFields, OUT CArray &AryOfValues); public: int StartThread(); int EndofThread(); inline const BOOL IsOpen() { return m_bOpen; } inline const CString& GetConnectErrorDescriptor() const { return m_strConnectErrorDescriptor; } inline LPCTSTR GetConnectString()const { return m_szConnectString; } BOOL OpenCatalog(IN LPCTSTR lpSQLConnectString = NULL); void CloseCatalog(); inline const CDatabase *GetCatalogInstance(){return m_pdbInstance;} inline void SetConn(IN LPCTSTR lpConn) { if(lpConn && _tcscmp(lpConn,_T("")) != 0) _stprintf_s(m_szConnectString,_T("%s"),lpConn); } }; #endif