This tutorial demonstrates how TSQLServer can be used to create a connection with a SQlite3 database.
It accesses the Sqlite data base. Download from https://root.cern/files/root_download_stats.sqlite In order to demonstrate the dependency over ROOT version 6.14, this tutorial uses the TSQLResult function which allows to extract the minimum time stored in the SQlite3 database. The next step is to create a TH1F Histogram, which will be filled with the values stored in two different columns from the database, the "Time" and "Version" columns. This product includes GeoLite2 data created by MaxMind, available from http://www.maxmind.com.
void SQLiteTimeVersionOfRoot(){
const char *minTime = "SELECT min(Time) FROM accesslog;";
std::string strMinTimeField = minTimeRes->
Next()->
GetField(0);
TDatime minTimeFormat(strMinTimeField.c_str());
TH1F *hTime =
new TH1F(
"hTime",
"Duration of ROOT dependency over version 6.14", 10, minTimeFormat.Convert(), now.
Convert());
const char *time = "SELECT Time, Version FROM accesslog;";
TString rowVersion(row->GetField(1));
TString shortVersion(rowVersion(0,4));
if ( shortVersion == "6.14" ) {
hTime->
Fill(rowTime.Convert());
}
delete row;
}
}
virtual void SetLabelSize(Float_t size=0.04)
Set size of axis labels.
virtual void SetNdivisions(Int_t n=510, Bool_t optim=kTRUE)
Set the number of divisions for this axis.
virtual void SetTimeDisplay(Int_t value)
virtual void SetTimeFormat(const char *format="")
Change the format used for time plotting.
This class stores the date and time with a precision of one second in an unsigned 32 bit word (950130...
UInt_t Convert(Bool_t toGMT=kFALSE) const
Convert fDatime from TDatime format to the standard time_t format.
1-D histogram with a float per channel (see TH1 documentation)
virtual Int_t Fill(Double_t x)
Increment bin with abscissa X by 1.
void Draw(Option_t *option="") override
Draw this histogram with options.
virtual TSQLRow * Next()=0
virtual const char * GetField(Int_t field)=0
virtual TSQLResult * Query(const char *sql)=0
static TSQLServer * Connect(const char *db, const char *uid, const char *pw)
The db should be of the form: <dbms>://<host>[:<port>][/<database>], e.g.: mysql://pcroot....
- Author
- Alexandra-Maria Dobrescu 08/2018
Definition in file SQLiteTimeVersionOfRoot.C.