/// \file /// \ingroup tutorial_sql /// Fill run catalog with nfiles entries /// /// \macro_code /// /// \author Sergey Linev void sqlfilldb(int nfiles = 1000) { const char *ins = "INSERT INTO runcatalog VALUES ('%s', %d," " %d, %d, %d, %10.2f, '%s', '%s', '1997-01-15 20:16:28'," " '1999-01-15 20:16:28', '%s', '%s')"; char sql[4096]; char dataset[32]; char rawfile[128]; int tag, evt = 0; // open connection to MySQL server on localhost TSQLServer *db = TSQLServer::Connect("mysql://localhost/test", "nobody", ""); TSQLResult *res; // first clean table of old entries res = db->Query("DELETE FROM runcatalog"); delete res; // start timer TStopwatch timer; timer.Start(); // fill run catalog for (int i = 0; i < nfiles; i++) { sprintf(dataset, "testrun_%d", i); sprintf(rawfile, "/v1/data/lead/test/run_%d.root", i); tag = int(gRandom->Rndm()*10.); sprintf(sql, ins, dataset, i, evt, evt+10000, tag, 25.5, "test", "lead", rawfile, "test run dummy data"); evt += 10000; res = db->Query(sql); delete res; //printf("%s\n", sql); } delete db; // stop timer and print results timer.Stop(); Double_t rtime = timer.RealTime(); Double_t ctime = timer.CpuTime(); printf("\n%d files in run catalog\n", nfiles); printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime); }