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

网格计算

开发平台:

Visual C++

  1. #ifndef _ADO_DATASET_H
  2. #define _ADO_DATASET_H
  3. /********************************************************
  4.  *  Class Name : CADODataSet. *
  5.  * Purpose : ADO Dataset Components' Base Class. *
  6.  *  File  Name : ADODataSet.h / ADODataSet.cpp. *
  7.  *------------------------------------------------------*
  8.  * Author : Devia Lee. Date: 2004-04-01 *
  9.  ********************************************************/
  10. #include <io.h>
  11. #include ".Variantex.h"
  12. #include ".ADOObject.h"
  13. #include ".ADOConnection.h"
  14. class CFields;
  15. class CADODataSet : public CADOObject
  16. {
  17. public:
  18. CADODataSet();
  19. CADODataSet(_RecordsetPtr pRecordset);
  20. virtual ~CADODataSet();
  21. //-------------------------------------------------
  22. //Set / Get the dataset's connection object.
  23. void SetConnection(CADOConnection &pADOConnection);
  24. CADOConnection &GetConnection();
  25. //Open or close the dataset.
  26. bool Open(LPCSTR lpszSQLText);
  27. bool Close();
  28. //-------------------------------------------------
  29. //get the dataset's state.
  30. bool IsOpened();
  31. //determine the dataset cursor whether or not
  32. //arrival the begin(end) of the dataset.
  33. bool IsBof();
  34. bool IsEof();
  35. //determine the dataset whether is empty.
  36. bool IsEmpty();
  37. //Cursor Location.
  38. void Prior();
  39. void Next();
  40. void First(); //move the cursor to the begin.
  41. void Last(); //move the cursor to the end.
  42. //Get the dataset's informations.
  43. LONG GetRecordCounts();
  44. //-------------------------------------------------
  45. //Get the dataset's fields object.
  46. CFields Fields();
  47. //-------------------------------------------------
  48. //Get the dataset edit mode.
  49. EditModeEnum GetEditMode();
  50. //Insert / Edit / Delete / Update.
  51. void Edit();
  52. void Insert();
  53. void Delete();
  54. void Update();
  55. //Storage COM support
  56. bool SaveToXMLFile(LPCSTR szfile);
  57. bool SaveToXMLStream(_StreamPtr &pstream);
  58. bool SaveToBuffer(char **buffer, LONG &size);
  59. //Load from XML file or Stream object.
  60. bool LoadFromXMLFile(LPCSTR szfile);
  61. bool LoadFromXMLStream(_StreamPtr &pstream);
  62. private:
  63. //ADO database connection object.
  64. CADOConnection* m_pADOConnection;
  65. //Record set smart pointer
  66. _RecordsetPtr m_pRecordset;
  67. //Dataset's SQL text.
  68. string m_sSQLText;
  69. };
  70. /********************************************************
  71.  *  Class Name : CField. *
  72.  * Purpose : Dataset Field SubAggregate Class; *
  73.  *   FieldPtr encapsulation class. *
  74.  *  File  Name : ADODataSet.h / ADODataSet.cpp. *
  75.  *------------------------------------------------------*
  76.  * Author : Devia Lee. Date: 2004-04-02 *
  77.  ********************************************************/
  78. class CField
  79. {
  80. public:
  81. //constructor or destructor procedure
  82. CField();
  83. CField(FieldPtr &fldPtr);
  84. virtual ~CField();
  85. //get fieldPtr smart pointer
  86. FieldPtr getSmartPtr();
  87. //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  88. CField& operator=(CField &fldObj);
  89. CField& operator=(FieldPtr fldPtr);
  90. //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  91. //get the field type
  92. DataTypeEnum getType();
  93. //get the field define size
  94. long getDefineSize();
  95. //get the field actual size
  96. long getActualSize();
  97. //get the field name
  98. string getName();
  99. //get the field value.
  100. CVariantEx getValue();
  101. //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  102. //set the field value.
  103. void setValue(CVariantEx var);
  104. //determine the field whether is null
  105. bool IsNull();
  106. protected:
  107. //field smart pointer
  108. FieldPtr m_spField;
  109. };
  110. /********************************************************
  111.  *  Class Name : CBlobField. *
  112.  * Purpose : Dataset Blob Field SubAggregate Class;* 
  113.  *  File  Name : ADODataSet.h / ADODataSet.cpp. *
  114.  *------------------------------------------------------*
  115.  * Author : Devia Lee. Date: 2004-04-03 *
  116.  ********************************************************/
  117. class CBlobField : public CField
  118. {
  119. public:
  120. CBlobField(CField &oField);
  121. virtual ~CBlobField();
  122. //Load contents from stream / file.
  123. void LoadFromStream( const char *lpBuffer, 
  124. const ULONG vBufSize);
  125. void LoadFromFile(LPCSTR lpszFileName);
  126. //Save current contents to stream / file.
  127. long SaveToStream( char *lpBuffer,
  128. const ULONG vMaxBufSize);
  129. long SaveToFile(LPCSTR lpszFileName);
  130. };
  131. /********************************************************
  132.  *  Class Name : CFields. *
  133.  * Purpose : Dataset Field Aggregate Class; *
  134.  *   FieldsPtr encapsulation class. *
  135.  *  File  Name : ADODataSet.h / ADODataSet.cpp. *
  136.  *------------------------------------------------------*
  137.  * Author : Devia Lee. Date: 2004-04-02 *
  138.  ********************************************************/
  139. class CFields
  140. {
  141. public:
  142. //constructor and destructor procedure
  143. CFields();
  144. CFields(FieldsPtr fldsPtr);
  145. virtual ~CFields();
  146. //Get fieldPtr smart pointer
  147. FieldsPtr &getSmartPtr();
  148. //Get the subfields count.
  149. const long FieldCount();
  150. //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  151. CFields &operator=(CFields  &fldsObj);
  152. CFields &operator=(FieldsPtr &fldsPtr);
  153. CField operator[](long i);
  154. //
  155. CField FieldByName(LPCSTR lpszFieldName);
  156. protected:
  157. //fields smart pointer
  158. FieldsPtr m_spFileds;
  159. };
  160. #endif //_ADO_DATASET_H