ROOT logo
#ifndef HDBTABLE
#define HDBTABLE
using namespace std;
#include <fstream> 
#include <iostream> 
#include <iomanip>
#include "TNamed.h"
#include "TString.h"
#include "TList.h"

class HDbConn;
class HDbFileUtil;
class HDbColumn;

class HDbTable : public TNamed {
private:
  HDbConn* dbConn;             // Pointer to the connection class
  HDbFileUtil* dbUtil;         // Pointer to the utility class
  TString      tabName;        // Name of the table
  TString      tabOwner;       // Owner of the table
  TList*       tabColumns;     // List of columns
  Int_t        nColumns;       // Number of columns
  Bool_t       tempTable;      // Flag (kTRUE for a table created inside the program)
  Bool_t       existing;       // Flag (kTRUE for an existing table)
  TString      colDefaultType; // Default type for columns
  TString      cond;           // Condition for a select statement
  TString      orderClause;    // Order clause for a select statement
public:
  HDbTable();
  HDbTable(HDbConn* p, HDbFileUtil*, const Char_t*);
  HDbTable(HDbConn* p, HDbFileUtil*, HDbTable&);
  ~HDbTable();
  Int_t getNColumns() { return nColumns; }
  HDbColumn* getColumn(Int_t);
  HDbColumn* getColumn(const Char_t*);
  HDbColumn* addColumn(const Char_t*,const Char_t* columnType=0);
  void addColumn(HDbColumn*);
  void removeColumn(const Char_t*);
  void clearColumns();
  void setColumns(const Char_t*, const Char_t* colTypes=0);
  void setColDefaultType(TString& s) { colDefaultType=s; }
  void setCondition(const Char_t* s);
  const Char_t* getCondition() { return cond.Data(); }
  void clearCondition() { cond=""; }
  void setOrderBy(const Char_t* s);
  const Char_t* getOrderBy() { return orderClause.Data(); }
  void clearOrderBy() { orderClause=""; }
  const Char_t* getColDefaultType() { return colDefaultType.Data(); }
  Bool_t describeTable();
  Bool_t createTable();
  Bool_t dropTable();
  Bool_t isTempTable() { return tempTable; }
  Bool_t isExisting() { return existing; }
  void show();
  Int_t writeTable(ostream&, const Char_t*, const Char_t*, const Char_t*);
private:
  void setNames(const Char_t*);
  ClassDef(HDbTable,0) // Class for Oracle table columns
};

#endif /* !HDBTABLE_H */
 hdbtable.h:1
 hdbtable.h:2
 hdbtable.h:3
 hdbtable.h:4
 hdbtable.h:5
 hdbtable.h:6
 hdbtable.h:7
 hdbtable.h:8
 hdbtable.h:9
 hdbtable.h:10
 hdbtable.h:11
 hdbtable.h:12
 hdbtable.h:13
 hdbtable.h:14
 hdbtable.h:15
 hdbtable.h:16
 hdbtable.h:17
 hdbtable.h:18
 hdbtable.h:19
 hdbtable.h:20
 hdbtable.h:21
 hdbtable.h:22
 hdbtable.h:23
 hdbtable.h:24
 hdbtable.h:25
 hdbtable.h:26
 hdbtable.h:27
 hdbtable.h:28
 hdbtable.h:29
 hdbtable.h:30
 hdbtable.h:31
 hdbtable.h:32
 hdbtable.h:33
 hdbtable.h:34
 hdbtable.h:35
 hdbtable.h:36
 hdbtable.h:37
 hdbtable.h:38
 hdbtable.h:39
 hdbtable.h:40
 hdbtable.h:41
 hdbtable.h:42
 hdbtable.h:43
 hdbtable.h:44
 hdbtable.h:45
 hdbtable.h:46
 hdbtable.h:47
 hdbtable.h:48
 hdbtable.h:49
 hdbtable.h:50
 hdbtable.h:51
 hdbtable.h:52
 hdbtable.h:53
 hdbtable.h:54
 hdbtable.h:55
 hdbtable.h:56
 hdbtable.h:57
 hdbtable.h:58
 hdbtable.h:59
 hdbtable.h:60
 hdbtable.h:61