GuiADODB.h
上传用户:zhanglf88
上传日期:2013-11-19
资源大小:6036k
文件大小:9k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. #pragma once
  2. //-----------------------------------------------------------------------//
  3. // This is a part of the GuiLib MFC Extention.  //
  4. // Autor  :  Francisco Campos  //
  5. // (C) 2002 Francisco Campos <www.beyondata.com> All rights reserved     //
  6. // This code is provided "as is", with absolutely no warranty expressed  //
  7. // or implied. Any use is at your own risk.  //
  8. // You must obtain the author's consent before you can include this code //
  9. // in a software library.  //
  10. // If the source code in  this file is used in any application  //
  11. // then acknowledgement must be made to the author of this program  //
  12. // fcampos@tutopia.com  //
  13. //-----------------------------------------------------------------------//
  14. #import "adomsado15.dll" rename_namespace("ADOCG") rename("EOF", "EndOfFile")
  15. using namespace ADOCG;
  16. #include "icrsint.h"
  17. #include "GuiLib.h" 
  18. //---------------------------------------------------------------------------------------
  19. class GUILIBDLLEXPORT CGuiField
  20. {
  21. protected:
  22. FieldPtr field;
  23. public:
  24. CGuiField(void);
  25. ~CGuiField(void);
  26. public:
  27. FieldPtr GetFieldPtr(){return field;};
  28. void Attach(FieldPtr mField){field=mField;};
  29. CString GetName(){ CString Name=(LPCTSTR)field->GetName(); return Name; };
  30. short   GetType(){return field->GetType();};
  31. long    GetActualSize(){return field->GetActualSize();};
  32. long    GetDefinedSize(){return field->GetDefinedSize();};
  33. long    GetAttributes(){return field->GetAttributes();};
  34. CString GetOriginalVal(){_variant_t vt=field->GetOriginalValue(); return (CString) vt.bstrVal;};
  35. BOOL SetValue(long lVal);
  36. BOOL SetValue(float flVal);
  37. BOOL SetValue(int nVal);
  38. BOOL SetValue(double dbVal);
  39. BOOL SetValue(CString szValue);
  40. BOOL SetValue(bool blVal);
  41. BOOL SetValue(COleDateTime dtVal);
  42. BOOL SetValue(_variant_t vt);
  43. BOOL GetValue(int& nValue);
  44. BOOL GetValue(long& lVal);
  45. BOOL GetValue(double& dbVal);
  46. BOOL GetValue(CString& strValue);
  47. BOOL GetValue(COleDateTime& dtVal);
  48. BOOL GetValue(float& flVal);
  49. BOOL GetValue(_variant_t& vtVal);
  50. CString GetUnderlyingValue() { _variant_t vt=field->UnderlyingValue; return (CString)vt.bstrVal;};
  51. };
  52. //--------------------------------------------------------------------------------------
  53. class CGuiCommand;
  54. class CGuiConnection;
  55. class GUILIBDLLEXPORT CGuiRecordSet
  56. {
  57. public:
  58. CGuiRecordSet(void);
  59. ~CGuiRecordSet(void);
  60. protected:
  61. _RecordsetPtr m_rs;
  62. CGuiConnection* m_pCon;
  63. public:
  64. BOOL Open(_ConnectionPtr ActiveConnection,LPCTSTR Source= _T(""), ADOCG::CursorTypeEnum CursorType = adOpenUnspecified,ADOCG::LockTypeEnum LockType= adLockUnspecified, long Options = -1); void MoveFirst();
  65. void MoveLast();
  66. void MoveNext();
  67. void MovePrevious();
  68. void Cancel();
  69. void CancelUpdate(); 
  70. void Close();
  71. BOOL IsEof();
  72. BOOL IsBof();
  73. long GetRecordCount(){ return m_rs->RecordCount;}
  74. long GetAbsolutePage(){return m_rs->GetAbsolutePage();};
  75. void SetAbsolutePage(int nPage) {m_rs->PutAbsolutePage((enum PositionEnum)nPage);};
  76. long GetPageCount() {return m_rs->GetPageCount();};
  77. long GetPageSize() {return m_rs->GetPageSize();};
  78. void SetPageSize(int nSize) {m_rs->PutPageSize(nSize);};
  79. long GetAbsolutePosition() {return m_rs->GetAbsolutePosition();};
  80. void SetAbsolutePosition(int nPosition) {m_rs->PutAbsolutePosition((enum PositionEnum)nPosition);};
  81. BOOL Find(LPCTSTR Criteria , long SkipRecords=0 , SearchDirectionEnum SearchDirection= adSearchForward,_variant_t Start=vtMissing); long GetNumFields()
  82. {return m_rs->Fields->GetCount();};
  83. _RecordsetPtr GetAdoRecordSet(){ return m_rs;};
  84. //void SetBookmark(){m_rs->Bookmark = m_rs->GetBookmark();};
  85. CString GetCollect(LPCTSTR lpField);
  86. BOOL GetCollect(int nIndex,int& nValue);
  87. BOOL GetCollect(int nIndex,long& lVal);
  88. BOOL GetCollect(int nIndex,double& dbVal);
  89. BOOL GetCollect(int nIndex,CString& strValue);
  90. BOOL GetCollect(int nIndex,COleDateTime& dtVal);
  91. BOOL GetCollect(int nIndex,float& flVal);
  92. BOOL GetCollect(int nIndex,bool& blVal);
  93. BOOL GetCollect(int nIndex,_variant_t& vt);
  94. BOOL GetCollect(int nIndex,COleCurrency& cyVal);
  95. BOOL GetCollect(LPCTSTR lpField,int& nValue);
  96. BOOL GetCollect(LPCTSTR lpField,long& lVal);
  97. BOOL GetCollect(LPCTSTR lpField,double& dbVal);
  98. BOOL GetCollect(LPCTSTR lpField,CString& strValue);
  99. BOOL GetCollect(LPCTSTR lpField,COleDateTime& dtVal);
  100. BOOL GetCollect(LPCTSTR lpField,float& flVal);
  101. BOOL GetCollect(LPCTSTR lpField,bool& blVal);
  102. BOOL GetCollect(LPCTSTR lpField,_variant_t& vt);
  103. BOOL GetCollect(LPCTSTR lpField,COleCurrency& cyVal);
  104. BOOL GetFormatDate(int nIndex,CString& m_szDate, CString Format=_T("%d/%m/%Y")); 
  105. BOOL GetFormatDate(LPCTSTR lpField,CString& m_szDate, CString Format=_T("%d/%m/%Y"));
  106. CGuiField GetField(LPCTSTR lpField);
  107. CGuiField GetField(int Index);
  108. BOOL SetValue(LPCTSTR lpName,CString szCad);
  109. BOOL SetValue(LPCTSTR lpName,long lVal);
  110. BOOL SetValue(LPCTSTR lpName,unsigned char usVal);
  111. BOOL SetValue(LPCTSTR lpName,short shVal);
  112. BOOL SetValue(LPCTSTR lpName,float flVal);
  113. BOOL SetValue(LPCTSTR lpName,double dblVal);
  114. BOOL SetValue(LPCTSTR lpName,BOOL blVal);
  115. BOOL SetValue(LPCTSTR lpName,COleDateTime dtVal);
  116. BOOL SetValue(LPCTSTR lpName,unsigned long ulVal);
  117. BOOL SetValue(LPCTSTR lpName, COleCurrency cuVal);
  118.     BOOL SetFieldValue(LPCTSTR lpName, _variant_t vt);
  119. BOOL Supports( CursorOptionEnum CursorOptions ) ; BOOL FindFirst(LPCTSTR Criteria);
  120. BOOL FindNext();
  121. void CGuiRecordSet::Move(long NumRecords , _variant_t Start);
  122. void Attach(_RecordsetPtr m_prs );
  123. void CancelBatch(AffectEnum AffectRecords= adAffectAll); void SetCacheSize(long lSizeCache){m_rs->put_CacheSize(lSizeCache);}; void GetCacheSize() {m_rs->GetCacheSize();}; CGuiRecordSet*  Clone(ADOCG::LockTypeEnum LockType= adLockUnspecified); CGuiRecordSet* NextRecordset(long RecordsAffected) ; BOOL AddNew(){ return m_rs->AddNew() != S_OK;};
  124. BOOL Update(){ return m_rs->Update() != S_OK;};
  125. BOOL Delete();
  126. BOOL IsOpen();
  127. BOOL SetFilter(LPCTSTR lpFilter);
  128. BOOL SetSort(LPCTSTR lpSort);
  129. ADOCG::EditModeEnum GetEditMode(){return m_rs->EditMode;}; 
  130. protected:
  131. _variant_t vtPointer;
  132. LPCTSTR m_Criteria;
  133. };
  134. //------------------------------------------------------------------------------------------------
  135. class GUILIBDLLEXPORT CGuiConnection
  136. {
  137. public:
  138. CGuiConnection(void);
  139. ~CGuiConnection(void);
  140. protected:
  141. _ConnectionPtr m_pConn;
  142. public:
  143. BOOL Open(LPCTSTR ConnectionString,LPCTSTR UID=_T(""),LPCTSTR PWD=_T(""),long Options=-1);
  144. CGuiRecordSet* Execute(LPCTSTR CommandText,long Options=-1 );
  145. long BeginTrans();
  146. void RollbackTrans();
  147. void CommitTrans();
  148. void Cancel();
  149. void Close();
  150. BOOL IsConnect();
  151. void SetConnectionTimeout(long ConnectionTimeout);
  152. void SetConectionString( LPCTSTR ConnectionString);
  153. long GetConnectionTimeout();
  154. _ConnectionPtr GetConecction(){return m_pConn;};
  155. LPCTSTR GetConectionString();
  156. };
  157. //----------------------------------------------------------------------------------------------
  158. class GUILIBDLLEXPORT CGuiParameter
  159. {
  160. public:
  161. CGuiParameter();
  162. ~CGuiParameter();
  163. protected:
  164. _ParameterPtr pParam;
  165. public:
  166. void SetAttributes(long Attributes);
  167. void SetDirection(ADOCG::ParameterDirectionEnum Direction=adParamUnknown);
  168. void SetName(LPCTSTR szName);
  169. void SetNumericScale(unsigned char NumericScale);
  170. void SetPrecision(unsigned char Precision);
  171. void SetSize(long Size);
  172. void SetType(ADOCG::DataTypeEnum Type);
  173. BOOL SetValue(long lVal);
  174. BOOL SetValue(float flVal);
  175. BOOL SetValue(int nVal);
  176. BOOL SetValue(double dbVal);
  177. BOOL SetValue(CString szValue);
  178. BOOL SetValue(bool blVal);
  179. BOOL SetValue(COleDateTime dtVal);
  180. BOOL SetValue(COleCurrency cyVal);
  181. BOOL SetValue(_variant_t vt);
  182. BOOL GetValue(int& nValue);
  183. BOOL GetValue(long& lVal);
  184. BOOL GetValue(double& dbVal);
  185. BOOL GetValue(CString& strValue);
  186. BOOL GetValue(COleDateTime& dtVal);
  187. BOOL GetValue(float& flVal);
  188. BOOL GetValue(_variant_t& vtVal);
  189. BOOL GetValue(COleCurrency& cyVal);
  190. BOOL GetFormatDate(CString& m_szDate, CString Format=_T("%d/%m/%Y"));
  191. _ParameterPtr GetParameter(){return pParam;};
  192. void Attach(_ParameterPtr param) {pParam=param;};
  193. };
  194. //----------------------------------------------------------------------------------------------
  195. class GUILIBDLLEXPORT CGuiCommand
  196. {
  197. public:
  198. CGuiCommand();
  199. ~CGuiCommand();
  200. protected:
  201. _CommandPtr pCommand;
  202. CGuiConnection m_pCon;
  203. public:
  204. void SetActiveConnection(CGuiConnection* pCon);
  205. void SetActiveConnection(LPCTSTR szconnec);
  206. void Cancel();
  207. void SetCommandText(LPCTSTR lpCommand,CommandTypeEnum cmdType=adCmdText);
  208. void SetCommandTimeout(long CommandTimeout);
  209. void SetPrepared(BOOL prepared);
  210. long GetState();
  211. CGuiRecordSet* Execute(VARIANT* param1=NULL,VARIANT* param2=NULL,long Options=-1);
  212. CGuiParameter* CreateParameter(CString Name ,long Size ,ADOCG::DataTypeEnum Type= adEmpty, 
  213. ADOCG::ParameterDirectionEnum Direction= adParamInput) ;
  214. BOOL Append(CGuiParameter* pParam);
  215. _CommandPtr GetCommand(){return pCommand;};
  216. void Attach(_CommandPtr Command) {pCommand=Command;};
  217. };