12 #ifndef ROOT_TSQLStatement
13 #define ROOT_TSQLStatement
21 class TSQLStatement :
public TObject {
24 TSQLStatement(Bool_t errout = kTRUE) : TObject(), fErrorCode(0),
25 fErrorMsg(), fErrorOut(errout) { ClearError(); }
32 void SetError(Int_t code,
const char* msg,
const char* method = 0);
35 virtual ~TSQLStatement() {}
37 virtual Int_t GetBufferLength()
const = 0;
38 virtual Int_t GetNumParameters() = 0;
40 virtual Bool_t NextIteration() = 0;
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); }
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; }
71 virtual Bool_t Process() = 0;
72 virtual Int_t GetNumAffectedRows() {
return 0; }
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;
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); }
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);
96 Int_t GetMonth(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);
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; }
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; }
119 ClassDef(TSQLStatement, 0)