Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
SQLiteVersionsOfRoot.C
Go to the documentation of this file.
1 /// \file
2 /// \ingroup tutorial_sql
3 /// \notebook -js
4 ///
5 /// This tutorial demonstrates how TSQLServer can be used to create a
6 /// connection with a SQlite3 database. It accesses the Sqlite data base.
7 /// Download from https://root.cern/download/root_download_stats.sqlite
8 /// Then a TH1F histogram is created and filled
9 /// using a expression which receives the recorded
10 /// values in the "version" column of the sqlite3 database.
11 /// The histogram shows the usage of the ROOT development version.
12 /// This product includes GeoLite2 data created by MaxMind, available from
13 /// <a href="http://www.maxmind.com">http://www.maxmind.com</a>.
14 ///
15 /// \macro_code
16 ///
17 /// \author Alexandra-Maria Dobrescu 08/2018
18 
19 #include <TSQLiteServer.h>
20 #include <TSQLiteResult.h>
21 #include <TSQLRow.h>
22 #include <TString.h>
23 
24 void SQLiteVersionsOfRoot(){
25 
26  TSQLServer *db = TSQLServer::Connect("sqlite://root_download_stats.sqlite", "", "");
27 
28  const char *rootSourceVersion = "SELECT Version FROM accesslog;";
29 
30  TSQLResult *rootSourceVersionRes = db->Query(rootSourceVersion);
31 
32  TH1F *hVersionOfRoot= new TH1F("hVersionOfRoot", "Development Versions of ROOT", 7, 0, -1);
33 
34  while (TSQLRow *row = rootSourceVersionRes->Next()) {
35  TString rowVersion(row->GetField(0));
36  TString shortVersion(rowVersion(0,4));
37  hVersionOfRoot->Fill(shortVersion,1);
38  delete row;
39  }
40 
41  TCanvas *VersionOfRootHistogram = new TCanvas();
42 
43  hVersionOfRoot->GetXaxis()->LabelsOption("a");
44  hVersionOfRoot->LabelsDeflate("X");
45  hVersionOfRoot->Draw();
46 }