/************************************************************************/ /* Copyright (C), 2016-2020, [IT], ��������Ȩ��; /* ģ �� ����; /* �� ����; /* /* �� ����[V]; /* �� �ߣ�[IT]; /* �� �ڣ�[9/20/2016]; /* /* /* ע �⣺; /* /* �ļ�¼��[IT]; /* �����ڣ�; /* �İ汾��; /* �����ݣ�; /************************************************************************/ #ifndef __ODBCPTR_20160920__ #define __ODBCPTR_20160920__ class CDatabase; #include "IODBCInterface.h" #pragma once class AFX_EXT_CLASS CODBCPtr:public IODBCInterface { CODBCPtr(void); public: ~CODBCPtr(void); ULONG STDMETHODCALLTYPE AddRef( ); ULONG STDMETHODCALLTYPE Release( ); HRESULT STDMETHODCALLTYPE QueryInterface(REFIID refiid, void **ppvObject); // ��ȡʵ��ָ��; static CODBCPtr* GetInstance(){ if ( m_pInstance == NULL ) m_pInstance = new CODBCPtr; return m_pInstance; } private: volatile LONG m_nRef; volatile LONG m_nObjRef; // ����ʵ��; static CODBCPtr* m_pInstance; void SolveDBError( IN CONST DWORD &dwError, IN CDatabase *&pDBConn); public: // ��ʼ����������; DWORD InitializePool( IN LPCTSTR lpDBSource, IN CONST DWORD &dwDBPort, IN LPCTSTR lpDBAccount, IN LPCTSTR lpPassWord, IN LPCTSTR lpDBName, IN CONST INT &nMinConn = 1, IN CONST INT &nMaxConn = 5 ); // �ر���������; void ReleasePool(); BOOL ExecuteSQL( IN LPCTSTR lpExcuteSQL, IN CONST DWORD &dwTimeOut = 30000 ); BOOL IsUserExist( IN LPCTSTR lpStudioID, IN LPCTSTR lpAccount, IN LPCTSTR lpPassword, OUT LPVOID lpOutUserInfo,IN CONST DWORD &dwTimeOut = 3000 ); INT QueryUserDetail(IN LPCTSTR lpStudioID, IN LPVOID lpUserDetail, IN CONST DWORD& dwTimeOut = 3000); INT QueryUserDetail( IN LPCTSTR lpStudioID, IN LPCTSTR lpAccount, IN LPCTSTR lpPassword, OUT LPVOID lpOutUserInfo,IN CONST DWORD &dwTimeOut = 3000 ); INT QueryDepartmentInfo( IN LPCTSTR lpStudioID, OUT LPVOID lpOutDepartmentInfo, IN CONST DWORD& dwTimeOut = 3000 ); INT QueryStaffInfo(IN LPCTSTR lpStudioID, OUT LPVOID lpOutStaffInfo, IN CONST DWORD& dwTimeOut = 3000 ); INT QueryUserInfo(IN LPCTSTR lpStudioID, OUT LPVOID lpOutUserInfo, IN CONST DWORD& dwTimeOut = 3000 ); INT QueryProductType(IN LPCTSTR lpStudioID, OUT LPVOID lpOutProductType, IN CONST DWORD& dwTimeOut = 3000 ); INT QueryProductInfo(IN LPCTSTR lpStudioID, OUT LPVOID lpOutProductInfo, IN CONST DWORD& dwTimeOut = 3000 ); INT QuerySceneryInfo(IN LPCTSTR lpStudioID, OUT LPVOID lpOutSceneryInfo, IN CONST DWORD& dwTimeOut = 3000 ); INT QueryPackageType(IN LPCTSTR lpStudioID, OUT LPVOID lpOutPackageType, IN CONST DWORD& dwTimeOut = 3000 ); INT QueryPackageInfo(IN LPCTSTR lpStudioID, OUT LPVOID lpOutPackageInfo, IN CONST DWORD& dwTimeOut = 3000 ); INT QueryPackageItems(IN LPCTSTR lpStudioID, OUT LPVOID lpOutPackageItems, IN CONST DWORD& dwTimeOut = 3000 ); INT QueryPackageItemsView(IN LPCTSTR lpStudioID, OUT LPVOID lpOutPackageItems, IN CONST DWORD& dwTimeOut = 3000); INT QueryPackageItemsDetail(IN LPCTSTR lpStudioID, IN LPCTSTR lpPackageSN, OUT LPVOID lpOutPackageItems, IN CONST DWORD& dwTimeOut = 3000); INT QueryCustomerType(IN LPCTSTR lpStudioID, OUT LPVOID lpOutCustomerFrom, IN CONST DWORD& dwTimeOut = 3000 ); INT QueryCustomerInfo(IN LPCTSTR lpStudioID, OUT LPVOID lpOutCustomerInfo, IN LPCTSTR lpFilter, IN CONST DWORD& dwTimeOut = 3000); INT QueryOrderType(IN LPCTSTR lpStudioID, OUT LPVOID lpOutOrderType, IN CONST DWORD& dwTimeOut = 3000 ); INT QueryOrderInfo(IN LPCTSTR lpStudioID, OUT LPVOID lpOutOrderInfo, IN LPCTSTR lpFilter, IN CONST DWORD& dwTimeOut = 3000 ); INT QueryOrderScenery(IN LPCTSTR lpStudioID, OUT LPVOID lpOutOrderScenery, IN LPCTSTR lpFilter, IN CONST DWORD& dwTimeOut = 3000); INT QueryOrderPackageItems(IN LPCTSTR lpStudioID, OUT LPVOID lpOutOrderPackageItems, IN LPCTSTR lpFilter, IN CONST DWORD& dwTimeOut = 3000); INT QuerySysConfig(IN LPCTSTR lpStudioID, OUT LPVOID lpOutSysConfig, IN CONST DWORD& dwTimeOut = 3000 ); INT QueryLog(IN LPCTSTR lpStudioID, OUT LPVOID lpOutLog, IN CONST DWORD& dwTimeOut = 3000 ); INT QueryStudioInfo(IN LPCTSTR lpStudioID, OUT LPVOID lpOutStudioInfo, IN CONST DWORD& dwTimeOut = 3000 ); INT SupQueryStudioInfo(OUT LPVOID lpOutStudioInfo, IN CONST DWORD& dwTimeOut = 3000 ); INT QueryMaxOrderId(IN LPCTSTR lpStudioID, IN CONST DWORD& dwTimeOut = 3000); INT QueryMaxPrintId(IN LPCTSTR lpStudioID, IN CONST DWORD& dwTimeOut = 3000); ////////////////////////////////////////////////////////////////////////// BOOL InsertStudioInfo(IN LPVOID lpStudioInfo, IN CONST DWORD& dwTimeOut = 3000 ); BOOL UpdateStudioInfo(IN LPVOID lpStudioInfo, IN CONST DWORD& dwTimeOut = 3000); }; #endif