/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 #ifndef DBIRESULTSET_H 00002 #define DBIRESULTSET_H 00003 00004 00008 00031 #include <string> 00032 00033 #include "TString.h" 00034 00035 #include "DatabaseInterface/Dbi.h" 00036 #include "DatabaseInterface/DbiRowStream.h" 00037 00038 class DbiString; 00039 class DbiStatement; 00040 class DbiTableMetaData; 00041 class DbiTableProxy; 00042 class TSQLStatement; 00043 class TimeStamp; 00044 00045 class DbiResultSet : public DbiRowStream 00046 { 00047 00048 public: 00049 00050 // Constructors and destructors. 00051 DbiResultSet(DbiStatement* stmtDb, 00052 const DbiString& sql, 00053 const DbiTableMetaData* metaData, 00054 const DbiTableProxy* tableProxy, 00055 UInt_t dbNo, 00056 const string& fillOpts = ""); 00057 virtual ~DbiResultSet(); 00058 00059 // State testing member functions 00060 Bool_t CurColExists() const; 00061 string CurColString() const; 00062 string CurColValue() const { LoadCurValue(); return fValString;} 00063 UInt_t CurRowNum() const { return fCurRow;} 00064 UInt_t GetDbNo() const { return fDbNo; } 00065 Dbi::DbTypes GetDBType() const { return fDbType; } 00066 string GetFillOpts() const { return fFillOpts;} 00067 const DbiTableProxy* GetTableProxy() const { return fTableProxy; } 00070 Bool_t IsBeforeFirst() const { return false; }; 00071 Bool_t IsExhausted() const { return fExhausted; } 00072 void RowAsCsv(string& row) const; 00073 00074 // State changing member functions 00075 00076 DbiResultSet& operator>>(Bool_t& dest); 00077 DbiResultSet& operator>>(Char_t& dest); 00078 DbiResultSet& operator>>(Short_t& dest); 00079 DbiResultSet& operator>>(UShort_t& dest); 00080 DbiResultSet& operator>>(Int_t& dest); 00081 DbiResultSet& operator>>(UInt_t& dest); 00082 DbiResultSet& operator>>(Long_t& dest); 00083 DbiResultSet& operator>>(ULong_t& dest); 00084 DbiResultSet& operator>>(Float_t& dest); 00085 DbiResultSet& operator>>(Double_t& dest); 00086 DbiResultSet& operator>>(string& dest); 00087 DbiResultSet& operator>>(TimeStamp& dest); 00088 00089 Bool_t FetchRow(); 00090 00091 private: 00092 00093 string& AsString(Dbi::DataTypes type); 00094 Bool_t LoadCurValue() const; 00095 TString GetStringFromTSQL(Int_t col) const; 00096 00097 // Data members 00098 00100 Int_t fCurRow; 00101 00103 UInt_t fDbNo; 00104 00106 Dbi::DbTypes fDbType; 00107 00112 DbiStatement* fStatement; 00113 00115 TSQLStatement* fTSQLStatement; 00116 00118 Bool_t fExhausted; 00119 00121 const DbiTableProxy* fTableProxy; 00122 00124 mutable string fValString; 00125 00127 string fFillOpts; 00128 00129 // Removed: ClassDef(DbiResultSet,0) //ResultSet from Query to database table 00130 00131 }; 00132 00133 00134 #endif // DBIRESULTSET_H