Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TSQLStatement.h
Go to the documentation of this file.
1 // @(#)root/net:$Id$
2 // Author: Sergey Linev 6/02/2006
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2006, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TSQLStatement
13 #define ROOT_TSQLStatement
14 
15 #include "TObject.h"
16 #include "TString.h"
17 #include "TDatime.h"
18 #include "TTimeStamp.h"
19 #include<vector>
20 
21 class TSQLStatement : public TObject {
22 
23 protected:
24  TSQLStatement(Bool_t errout = kTRUE) : TObject(), fErrorCode(0),
25  fErrorMsg(), fErrorOut(errout) { ClearError(); }
26 
27  Int_t fErrorCode; // error code of last operation
28  TString fErrorMsg; // error message of last operation
29  Bool_t fErrorOut; // enable error output
30 
31  void ClearError();
32  void SetError(Int_t code, const char* msg, const char* method = 0);
33 
34 public:
35  virtual ~TSQLStatement() {}
36 
37  virtual Int_t GetBufferLength() const = 0;
38  virtual Int_t GetNumParameters() = 0;
39 
40  virtual Bool_t NextIteration() = 0;
41 
42  virtual Bool_t SetNull(Int_t) { return kFALSE; }
43  virtual Bool_t SetInt(Int_t, Int_t) { return kFALSE; }
44  virtual Bool_t SetUInt(Int_t, UInt_t) { return kFALSE; }
45  virtual Bool_t SetLong(Int_t, Long_t) { return kFALSE; }
46  virtual Bool_t SetLong64(Int_t, Long64_t) { return kFALSE; }
47  virtual Bool_t SetULong64(Int_t, ULong64_t) { return kFALSE; }
48  virtual Bool_t SetDouble(Int_t, Double_t) { return kFALSE; }
49  virtual Bool_t SetString(Int_t, const char*, Int_t = 256) { return kFALSE; }
50  virtual Bool_t SetDate(Int_t, Int_t, Int_t, Int_t) { return kFALSE; }
51  Bool_t SetDate(Int_t, const TDatime&);
52  virtual Bool_t SetTime(Int_t, Int_t, Int_t, Int_t) { return kFALSE; }
53  Bool_t SetTime(Int_t, const TDatime&);
54  virtual Bool_t SetDatime(Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Int_t) { return kFALSE; }
55  Bool_t SetDatime(Int_t, const TDatime&);
56  virtual Bool_t SetTimestamp(Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Int_t = 0);
57  virtual Bool_t SetTimestamp(Int_t, const TTimeStamp&);
58  Bool_t SetTimestamp(Int_t, const TDatime&);
59  virtual void SetTimeFormating(const char*) {}
60  virtual Bool_t SetBinary(Int_t, void*, Long_t, Long_t = 0x1000) { return kFALSE; }
61  virtual Bool_t SetLargeObject(Int_t col, void* mem, Long_t size, Long_t maxsize = 0x1000) { return SetBinary(col, mem, size, maxsize); }
62 #ifndef __MAKECINT__
63  virtual Bool_t SetVInt(Int_t, const std::vector<Int_t>, const char*, const char*) { return kFALSE; }
64  virtual Bool_t SetVUInt(Int_t, const std::vector<UInt_t>, const char*, const char*) { return kFALSE; }
65  virtual Bool_t SetVLong(Int_t, const std::vector<Long_t>, const char*, const char*) { return kFALSE; }
66  virtual Bool_t SetVLong64(Int_t, const std::vector<Long64_t>, const char*, const char*) { return kFALSE; }
67  virtual Bool_t SetVULong64(Int_t, const std::vector<ULong64_t>, const char*, const char*) { return kFALSE; }
68  virtual Bool_t SetVDouble(Int_t, const std::vector<Double_t>, const char*, const char*) { return kFALSE; }
69 #endif
70 
71  virtual Bool_t Process() = 0;
72  virtual Int_t GetNumAffectedRows() { return 0; }
73 
74  virtual Bool_t StoreResult() = 0;
75  virtual Int_t GetNumFields() = 0;
76  virtual const char *GetFieldName(Int_t) = 0;
77  virtual Bool_t SetMaxFieldSize(Int_t, Long_t) { return kFALSE; }
78  virtual Bool_t NextResultRow() = 0;
79 
80  virtual Bool_t IsNull(Int_t) { return kTRUE; }
81  virtual Int_t GetInt(Int_t) { return 0; }
82  virtual UInt_t GetUInt(Int_t) { return 0; }
83  virtual Long_t GetLong(Int_t) { return 0; }
84  virtual Long64_t GetLong64(Int_t) { return 0; }
85  virtual ULong64_t GetULong64(Int_t) { return 0; }
86  virtual Double_t GetDouble(Int_t) { return 0.; }
87  virtual const char *GetString(Int_t) { return 0; }
88  virtual Bool_t GetBinary(Int_t, void* &, Long_t&) { return kFALSE; }
89  virtual Bool_t GetLargeObject(Int_t col, void* &mem, Long_t& size) { return GetBinary(col, mem, size); }
90 
91  virtual Bool_t GetDate(Int_t, Int_t&, Int_t&, Int_t&) { return kFALSE; }
92  virtual Bool_t GetTime(Int_t, Int_t&, Int_t&, Int_t&) { return kFALSE; }
93  virtual Bool_t GetDatime(Int_t, Int_t&, Int_t&, Int_t&, Int_t&, Int_t&, Int_t&) { return kFALSE; }
94  TDatime GetDatime(Int_t);
95  Int_t GetYear(Int_t);
96  Int_t GetMonth(Int_t);
97  Int_t GetDay(Int_t);
98  Int_t GetHour(Int_t);
99  Int_t GetMinute(Int_t);
100  Int_t GetSecond(Int_t);
101  Int_t GetSecondsFraction(Int_t);
102  virtual Bool_t GetTimestamp(Int_t, Int_t&, Int_t&, Int_t&, Int_t&, Int_t&, Int_t&, Int_t&);
103  virtual Bool_t GetTimestamp(Int_t, TTimeStamp&);
104  TDatime GetTimestamp(Int_t);
105 #ifndef __MAKECINT__
106  virtual Bool_t GetVInt(Int_t, std::vector<Int_t>&) { return kFALSE; }
107  virtual Bool_t GetVUInt(Int_t, std::vector<UInt_t>&) { return kFALSE; }
108  virtual Bool_t GetVLong(Int_t, std::vector<Long_t>&) { return kFALSE; }
109  virtual Bool_t GetVLong64(Int_t, std::vector<Long64_t>&) { return kFALSE; }
110  virtual Bool_t GetVULong64(Int_t, std::vector<ULong64_t>&) { return kFALSE; }
111  virtual Bool_t GetVDouble(Int_t, std::vector<Double_t>&) { return kFALSE; }
112 #endif
113 
114  virtual Bool_t IsError() const { return GetErrorCode()!=0; }
115  virtual Int_t GetErrorCode() const;
116  virtual const char* GetErrorMsg() const;
117  virtual void EnableErrorOutput(Bool_t on = kTRUE) { fErrorOut = on; }
118 
119  ClassDef(TSQLStatement, 0) //SQL statement
120 };
121 
122 #endif