00001 // @(#)root/physics:$Id: TOracleRow.h 23102 2008-04-09 22:18:41Z pcanal $ 00002 // Author: Yan Liu and Shaowen Wang 23/11/04 00003 00004 /************************************************************************* 00005 * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. * 00006 * All rights reserved. * 00007 * * 00008 * For the licensing terms see $ROOTSYS/LICENSE. * 00009 * For the list of contributors see $ROOTSYS/README/CREDITS. * 00010 *************************************************************************/ 00011 00012 #ifndef ROOT_TOracleRow 00013 #define ROOT_TOracleRow 00014 00015 #ifndef ROOT_TSQLRow 00016 #include "TSQLRow.h" 00017 #endif 00018 00019 #if !defined(__CINT__) 00020 #ifndef R__WIN32 00021 #include <sys/time.h> 00022 #endif 00023 #include <occi.h> 00024 using namespace oracle::occi; 00025 #ifdef CONST 00026 #undef CONST 00027 #endif 00028 #else 00029 class ResultSet; 00030 class MetaData; 00031 #endif 00032 00033 class TOracleRow : public TSQLRow { 00034 00035 private: 00036 ResultSet *fResult; // current result set 00037 std::vector<MetaData> *fFieldInfo; // metadata for columns 00038 Int_t fFieldCount; 00039 char **fFieldsBuffer; 00040 00041 Bool_t IsValid(Int_t field); 00042 00043 protected: 00044 void GetRowData(); 00045 00046 public: 00047 TOracleRow(ResultSet *rs, std::vector<MetaData> *fieldMetaData); 00048 ~TOracleRow(); 00049 00050 void Close(Option_t *opt=""); 00051 ULong_t GetFieldLength(Int_t field); 00052 const char *GetField(Int_t field); 00053 00054 ClassDef(TOracleRow,0) // One row of Oracle query result 00055 }; 00056 00057 #endif