123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #ifndef _JEFF_DBINTERFACE_HEAD_
- #define _JEFF_DBINTERFACE_HEAD_
- //
- // Jeff.Create at 2014.07.14
- // 数据库处理;
- //
- #include <vector>
- #include <afxdb.h> // CDatabase类头文件;
- #include "TableChildmsg.h"
- #include "TableClient2.h"
- #include "TableClient3.h"
- #include "TableHospitalclient.h"
- #include "TableSendreg.h"
- #include "TableSendregcard.h"
- #include "TableVersion.h"
- #include "DBViewDindanclient.h"
- #include "CritSection.h"
- #pragma once
- // Jeff.--已实现;
- // 当SQL执行错误为网络连接错误或数据库服务不存在,抛出函数,启动重连数据库线程.
- // 重连线程在成功连接数据库后,自动结束,不做循环;
- typedef struct _ST_SMSTYPE_
- {
- int TypeOfMsg;
- int nDays;
- //CString strTypeOfMsg;
- //CString strDays;
- }SmsType,*pSmsType;
- class CDBInterface
- {
- CDBInterface(void);
- public:
- ~CDBInterface(void);
- static CDBInterface *GetInstance()
- {
- static CDBInterface Instance;
- return &Instance;
- }
- const BOOL IsOpen(){
- return m_bOpen;
- }
- const CString& GetConnectErrorDescriptor() const{
- return m_strConnectErrorDescriptor;
- }
- // 打开数据库连接.
- BOOL OpenDatabase(LPCTSTR lpSQLConnectString = NULL);
- void CloseDatabase();
- const CDatabase *GetDatabaseInstance(){
- return m_pdbInstance;
- }
- // 执行SQL语句,不返回记录集
- BOOL Execute(LPCTSTR lpSQL);
- int GetSelectCount(LPCTSTR lpTableName, LPCTSTR lpFilter); // 获取查询记录数;
- private:
- BOOL m_bOpen;
- TCHAR m_szConnectString[MAX_PATH];
- CDatabase *m_pdbInstance;
- ThreadSection s_critSection;
- ThreadSection *ReturnSection() {
- return &s_critSection;
- }
- CString m_strConnectErrorDescriptor;
- public:
- BOOL GetSMSType(std::vector<SmsType> &vtSMSInfo,BOOL bhospitalcheck1,std::vector<SmsType> &vtSMSInfo2,BOOL bhospitalcheck2);
- BOOL GetTableChildmsg(CArray<CStringArray, CStringArray> &strListArray, LPCTSTR lpfilter = NULL);
- BOOL GetTableClient2(CArray<CStringArray, CStringArray> &strListArray, LPCTSTR lpfilter = NULL);
- BOOL GetTableClient3(CArray<CStringArray, CStringArray> &strListArray, LPCTSTR lpfilter = NULL);
- #if JEFF_DELETE_ON
- void GetTableVersion(CStringArray &strListArray, LPCTSTR lpfilter = NULL);
- #endif
- BOOL GetTableSendreg(CArray<CStringArray, CStringArray> &strListArray, LPCTSTR lpfilter = NULL);
- BOOL GetTableSendregcard(CArray<CStringArray, CStringArray> &strListArray, LPCTSTR lpfilter = NULL);
- BOOL GetTableHospitalclient(CArray<CStringArray, CStringArray> &strListArray, LPCTSTR lpfilter = NULL);
- BOOL GetDBViewDindanclientRecord(CArray<CStringArray, CStringArray> &strListArray, LPCTSTR lpfilter = NULL);
- BOOL GetSMSInfo(SMSInfo &tSMSInfo);
- static BOOL m_bEndofThread;
- HANDLE m_hWaitableTimer;
- HANDLE m_hReConnectEvent;
- HANDLE m_hReConnectThread;
- int StartThread();
- int EndofThread();
- static DWORD WINAPI ReConnectDatabaseThread(LPVOID lpPara);
- BOOL m_bSolve;
- BOOL SolveDBError(CONST DWORD &dwError,LPCTSTR lpErrorString = NULL);
- };
- #endif
|