123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- #ifndef _JEFF_DBINTERFACE_HEAD_
- #define _JEFF_DBINTERFACE_HEAD_
- //
- // Jeff.Create at 2014.07.14
- // 数据库专门;
- //
- #include <afxdb.h> // CDatabase类头文件;
- #include "lonindata.h"
- #include "renyuan.h"
- #include "CritSection.h"
- #pragma once
- const int LOGINDATA = 1;
- class CDBInterface
- {
- private:
- CDBInterface(void);
- ~CDBInterface(void);
- public:
- static CDBInterface *GetInstance()
- {
- static CDBInterface Instance;
- return &Instance;
- }
- const BOOL IsOpen(){return m_bOpen;}
- const CString& GetConnectErrorDescriptor() const{
- return m_strConnectErrorDescriptor;
- }
- void GetIniInfo(const char *szPath=NULL, const char *szIniName=NULL); // Jeff Add:获取ini文件信息;
- // 打开数据库连接.
- BOOL OpenDatabase(const TCHAR *szSQLConnectString=NULL);
- void CloseDatabase();
- CDatabase *GetDatabaseInstance(){return m_pdbInstance;}
- // 执行SQL语句,不返回记录集
- int Execute(LPCTSTR pSql);
- DWORD GetSelectCount(CString* pTableName, CString* pFilter = NULL); // 获取查询记录数;
- private:
- BOOL m_bOpen;
- TCHAR m_szConnectString[MAX_PATH+1];
- CDatabase *m_pdbInstance;
- protected:
- ThreadSection s_critSection;
- ThreadSection *ReturnSection() {
- return &s_critSection;
- }
- HANDLE m_hReConnectEvent;
- HANDLE m_hReConnectThread;
- int StartThread();
- int EndofThread();
- static DWORD WINAPI ReConnectDatabaseThread(LPVOID lpPara);
- CString m_strConnectErrorDescriptor;
- public:
- BOOL m_bSolve;
- BOOL SolveDBError(CONST DWORD &dwError,LPCTSTR lpErrorString = NULL);
- BOOL GetDataBySelect(CArray<CStringArray, CStringArray>& arr, const UINT nTable, std::vector<CString>& vFieldName, CString* pfilter = NULL, CString* pSort = NULL);
- void GetTableNameByType(const UINT nTable, CString& strTableName);
- };
- #endif
|