Logo ROOT  
Reference Guide
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
21class TSQLStatement : public TObject {
22
23protected:
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
34public:
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&);
57 virtual Bool_t SetTimestamp(Int_t, const TTimeStamp&);
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;
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; }
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
int Int_t
Definition: RtypesCore.h:41
unsigned int UInt_t
Definition: RtypesCore.h:42
const Bool_t kFALSE
Definition: RtypesCore.h:88
long Long_t
Definition: RtypesCore.h:50
bool Bool_t
Definition: RtypesCore.h:59
double Double_t
Definition: RtypesCore.h:55
long long Long64_t
Definition: RtypesCore.h:69
unsigned long long ULong64_t
Definition: RtypesCore.h:70
const Bool_t kTRUE
Definition: RtypesCore.h:87
#define ClassDef(name, id)
Definition: Rtypes.h:326
This class stores the date and time with a precision of one second in an unsigned 32 bit word (950130...
Definition: TDatime.h:37
Mother of all ROOT objects.
Definition: TObject.h:37
virtual Int_t GetBufferLength() const =0
virtual void EnableErrorOutput(Bool_t on=kTRUE)
virtual const char * GetFieldName(Int_t)=0
virtual const char * GetString(Int_t)
Definition: TSQLStatement.h:87
Bool_t fErrorOut
Definition: TSQLStatement.h:29
virtual ~TSQLStatement()
Definition: TSQLStatement.h:35
virtual Bool_t SetBinary(Int_t, void *, Long_t, Long_t=0x1000)
Definition: TSQLStatement.h:60
virtual Bool_t SetVLong64(Int_t, const std::vector< Long64_t >, const char *, const char *)
Definition: TSQLStatement.h:66
virtual UInt_t GetUInt(Int_t)
Definition: TSQLStatement.h:82
virtual Int_t GetErrorCode() const
returns error code of last operation if res==0, no error Each specific implementation of TSQLStatemen...
virtual Bool_t SetVLong(Int_t, const std::vector< Long_t >, const char *, const char *)
Definition: TSQLStatement.h:65
virtual Int_t GetNumParameters()=0
virtual Long_t GetLong(Int_t)
Definition: TSQLStatement.h:83
virtual Bool_t SetVULong64(Int_t, const std::vector< ULong64_t >, const char *, const char *)
Definition: TSQLStatement.h:67
virtual Bool_t SetVInt(Int_t, const std::vector< Int_t >, const char *, const char *)
Definition: TSQLStatement.h:63
virtual Bool_t SetVDouble(Int_t, const std::vector< Double_t >, const char *, const char *)
Definition: TSQLStatement.h:68
virtual Bool_t NextIteration()=0
virtual Bool_t NextResultRow()=0
virtual Bool_t SetUInt(Int_t, UInt_t)
Definition: TSQLStatement.h:44
virtual Bool_t IsError() const
TString fErrorMsg
Definition: TSQLStatement.h:28
virtual Int_t GetNumAffectedRows()
Definition: TSQLStatement.h:72
virtual Bool_t GetDatime(Int_t, Int_t &, Int_t &, Int_t &, Int_t &, Int_t &, Int_t &)
Definition: TSQLStatement.h:93
virtual Bool_t GetVInt(Int_t, std::vector< Int_t > &)
TSQLStatement(Bool_t errout=kTRUE)
Definition: TSQLStatement.h:24
virtual Bool_t SetString(Int_t, const char *, Int_t=256)
Definition: TSQLStatement.h:49
virtual Int_t GetNumFields()=0
void SetError(Int_t code, const char *msg, const char *method=0)
set new values for error fields if method specified, displays error message
virtual Bool_t GetVLong64(Int_t, std::vector< Long64_t > &)
Int_t GetDay(Int_t)
return day value for parameter (if applicable)
virtual Bool_t SetTimestamp(Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Int_t=0)
Set parameter as timestamp.
virtual Bool_t SetLargeObject(Int_t col, void *mem, Long_t size, Long_t maxsize=0x1000)
Definition: TSQLStatement.h:61
virtual Bool_t GetVUInt(Int_t, std::vector< UInt_t > &)
virtual Int_t GetInt(Int_t)
Definition: TSQLStatement.h:81
virtual Bool_t SetDatime(Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Int_t)
Definition: TSQLStatement.h:54
virtual Bool_t IsNull(Int_t)
Definition: TSQLStatement.h:80
virtual Bool_t GetDate(Int_t, Int_t &, Int_t &, Int_t &)
Definition: TSQLStatement.h:91
void ClearError()
reset error fields
virtual Long64_t GetLong64(Int_t)
Definition: TSQLStatement.h:84
Int_t GetMonth(Int_t)
return month value for parameter (if applicable)
Int_t GetSecondsFraction(Int_t)
return seconds fraction value for parameter (if applicable)
virtual Bool_t GetLargeObject(Int_t col, void *&mem, Long_t &size)
Definition: TSQLStatement.h:89
virtual Bool_t SetTime(Int_t, Int_t, Int_t, Int_t)
Definition: TSQLStatement.h:52
virtual Bool_t GetTime(Int_t, Int_t &, Int_t &, Int_t &)
Definition: TSQLStatement.h:92
virtual void SetTimeFormating(const char *)
Definition: TSQLStatement.h:59
Int_t GetSecond(Int_t)
return seconds value for parameter (if applicable)
virtual Bool_t SetULong64(Int_t, ULong64_t)
Definition: TSQLStatement.h:47
virtual Bool_t SetVUInt(Int_t, const std::vector< UInt_t >, const char *, const char *)
Definition: TSQLStatement.h:64
virtual Bool_t SetDouble(Int_t, Double_t)
Definition: TSQLStatement.h:48
Int_t GetMinute(Int_t)
return minutes value for parameter (if applicable)
virtual Bool_t Process()=0
virtual Bool_t SetLong(Int_t, Long_t)
Definition: TSQLStatement.h:45
virtual Bool_t SetInt(Int_t, Int_t)
Definition: TSQLStatement.h:43
virtual Bool_t SetNull(Int_t)
Definition: TSQLStatement.h:42
virtual Bool_t SetMaxFieldSize(Int_t, Long_t)
Definition: TSQLStatement.h:77
virtual Double_t GetDouble(Int_t)
Definition: TSQLStatement.h:86
virtual Bool_t GetVLong(Int_t, std::vector< Long_t > &)
virtual ULong64_t GetULong64(Int_t)
Definition: TSQLStatement.h:85
virtual const char * GetErrorMsg() const
returns error message of last operation if no errors, return 0 Each specific implementation of TSQLSt...
virtual Bool_t StoreResult()=0
virtual Bool_t SetLong64(Int_t, Long64_t)
Definition: TSQLStatement.h:46
Int_t GetYear(Int_t)
return year value for parameter (if applicable)
virtual Bool_t GetVDouble(Int_t, std::vector< Double_t > &)
virtual Bool_t SetDate(Int_t, Int_t, Int_t, Int_t)
Definition: TSQLStatement.h:50
virtual Bool_t GetTimestamp(Int_t, Int_t &, Int_t &, Int_t &, Int_t &, Int_t &, Int_t &, Int_t &)
Get parameter as timestamp.
virtual Bool_t GetBinary(Int_t, void *&, Long_t &)
Definition: TSQLStatement.h:88
virtual Bool_t GetVULong64(Int_t, std::vector< ULong64_t > &)
Int_t GetHour(Int_t)
return hours value for parameter (if applicable)
Basic string class.
Definition: TString.h:131
The TTimeStamp encapsulates seconds and ns since EPOCH.
Definition: TTimeStamp.h:71