GuiADODB.h
上传用户:maryhy001
上传日期:2007-05-02
资源大小:2317k
文件大小:10k
源码类别:

网格计算

开发平台:

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