Main Page | Class Hierarchy | Class List | Directories | File List | Class Members | File Members | Related Pages

DatabaseResultSet.h

Go to the documentation of this file.
00001 #ifndef __DATABASE_RESULT_SET_H__
00002 #define __DATABASE_RESULT_SET_H__
00003 
00004 // For compilers that support precompilation, includes "wx.h".
00005 #include "wx/wxprec.h"
00006 
00007 #ifdef __BORLANDC__
00008     #pragma hdrstop
00009 #endif
00010 
00011 #ifndef WX_PRECOMP
00012     #include "wx/wx.h"
00013 #endif
00014 
00015 #include "wx/hashmap.h"
00016 #include "wx/hashset.h"
00017 #include "wx/datetime.h"
00018 
00019 #include "DatabaseErrorReporter.h"
00020 #include "DatabaseStringConverter.h"
00021 #include "ResultSetMetaData.h"
00022 
00023 WX_DECLARE_STRING_HASH_MAP(int, StringToIntMap);
00024 WX_DECLARE_HASH_SET( ResultSetMetaData*, wxPointerHash, wxPointerEqual, MetaDataHashSet );
00025 
00026 class DatabaseResultSet : public DatabaseErrorReporter, public DatabaseStringConverter
00027 {
00028 public:
00030   DatabaseResultSet();
00031 
00033   virtual ~DatabaseResultSet();
00034 
00036   virtual bool Next() = 0;
00038   virtual void Close() = 0;
00039   
00040   virtual int LookupField(const wxString& strField) = 0;
00041 
00042   // get field
00044   virtual int GetResultInt(int nField) = 0;
00046   virtual wxString GetResultString(int nField) = 0;
00048   virtual long GetResultLong(int nField) = 0;
00050   virtual bool GetResultBool(int nField) = 0;
00052   virtual wxDateTime GetResultDate(int nField) = 0;
00054   virtual void* GetResultBlob(int nField, wxMemoryBuffer& Buffer) = 0;
00056   virtual double GetResultDouble(int nField) = 0;
00058   virtual bool IsFieldNull(int nField) = 0;
00059   
00061   virtual int GetResultInt(const wxString& strField);
00063   virtual wxString GetResultString(const wxString& strField);
00065   virtual long GetResultLong(const wxString& strField);
00067   virtual bool GetResultBool(const wxString& strField);
00069   virtual wxDateTime GetResultDate(const wxString& strField);
00071   virtual void* GetResultBlob(const wxString& strField, wxMemoryBuffer& Buffer);
00073   virtual double GetResultDouble(const wxString& strField);
00075   virtual bool IsFieldNull(const wxString& strField);
00076 
00077   // get MetaData
00079   virtual ResultSetMetaData* GetMetaData() = 0;
00081   virtual bool CloseMetaData(ResultSetMetaData* pMetaData);
00082 
00083 protected:
00085   void CloseMetaData();
00087   void LogMetaDataForCleanup(ResultSetMetaData* pMetaData) { m_MetaData.insert(pMetaData); }
00088   
00089 private:
00090   MetaDataHashSet m_MetaData;
00091 };
00092 
00093 #endif // __DATABASE_RESULT_SET_H__
00094 

Generated on Sat May 13 17:31:34 2006 for databaselayer by  doxygen 1.4.1