GuiADODB.h
上传用户:wlkj888
上传日期:2022-08-01
资源大小:806k
文件大小:9k
源码类别:

对话框与窗口

开发平台:

Visual C++

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