#ifndef SQL_CRSR
# define SQL_CRSR
struct sql_cursor
{
unsigned int curocn;
void *ptr1;
void *ptr2;
unsigned int magic;
};
typedef struct sql_cursor sql_cursor;
typedef struct sql_cursor SQL_CURSOR;
#endif /* SQL_CRSR */
typedef void * sql_context;
typedef void * SQL_CONTEXT;
struct sqltvn
{
unsigned char *tvnvsn;
unsigned short tvnvsnl;
unsigned char *tvnnm;
unsigned short tvnnml;
unsigned char *tvnsnm;
unsigned short tvnsnml;
};
typedef struct sqltvn sqltvn;
struct sqladts
{
unsigned int adtvsn;
unsigned short adtmode;
unsigned short adtnum;
sqltvn adttvn[1];
};
typedef struct sqladts sqladts;
static struct sqladts sqladt = {
1,1,0,
};
struct sqltdss
{
unsigned int tdsvsn;
unsigned short tdsnum;
unsigned char *tdsval[1];
};
typedef struct sqltdss sqltdss;
static struct sqltdss sqltds =
{
1,
0,
};
struct sqlcxp
{
unsigned short fillen;
char filnam[13];
};
static const struct sqlcxp sqlfpn =
{
12,
"hora2info.pc"
};
static unsigned int sqlctx = 302707;
static struct sqlexd {
unsigned long sqlvsn;
unsigned int arrsiz;
unsigned int iters;
unsigned int offset;
unsigned short selerr;
unsigned short sqlety;
unsigned int occurs;
const short *cud;
unsigned char *sqlest;
const char *stmt;
sqladts *sqladtp;
sqltdss *sqltdsp;
unsigned char **sqphsv;
unsigned long *sqphsl;
int *sqphss;
short **sqpind;
int *sqpins;
unsigned long *sqparm;
unsigned long **sqparc;
unsigned short *sqpadto;
unsigned short *sqptdso;
unsigned int sqlcmax;
unsigned int sqlcmin;
unsigned int sqlcincr;
unsigned int sqlctimeout;
unsigned int sqlcnowait;
int sqfoff;
unsigned int sqcmod;
unsigned int sqfmod;
unsigned int sqlpfmem;
unsigned char *sqhstv[7];
unsigned long sqhstl[7];
int sqhsts[7];
short *sqindv[7];
int sqinds[7];
unsigned long sqharm[7];
unsigned long *sqharc[7];
unsigned short sqadto[7];
unsigned short sqtdso[7];
} sqlstm = {13,7};
extern "C" {
void sqlcxt (void **, unsigned int *,
struct sqlexd *, const struct sqlcxp *);
void sqlcx2t(void **, unsigned int *,
struct sqlexd *, const struct sqlcxp *);
void sqlbuft(void **, char *);
void sqlgs2t(void **, char *);
void sqlorat(void **, unsigned int *, void *);
}
static const int IAPSUCC = 0;
static const int IAPFAIL = 1403;
static const int IAPFTL = 535;
extern "C" { void sqliem(unsigned char *, signed int *); }
static const char *sq0006 =
"select run_id ,filename ,TO_CHAR(run_start,'DD-MON-YYYY HH24:MI:SS') ,TO_CHA\
R(run_stop,'DD-MON-YYYY HH24:MI:SS') ,events from daq.daq_runs_hydra2 where (\
(((upper(exp_id)=:b0 and run_start is not null ) and run_start between TO_DAT\
E(:b1,'DD-MON-YYYY HH24:MI:SS') and TO_DATE(:b2,'DD-MON-YYYY HH24:MI:SS')) and\
filename is not null ) and filename<>'null') order by run_start ";
static const char *sq0007 =
"select a.run_id ,a.evt_builder ,a.filename ,TO_CHAR(a.run_start,'DD-MON-YYYY\
HH24:MI:SS') ,TO_CHAR(a.run_stop,'DD-MON-YYYY HH24:MI:SS') ,a.events ,b.mean_\
current from daq.daq_files_hydra2 a ,cryo.runs_magnet_current b where ((((((u\
pper(a.exp_id)=:b0 and a.run_start is not null ) and a.run_start between TO_D\
ATE(:b1,'DD-MON-YYYY HH24:MI:SS') and TO_DATE(:b2,'DD-MON-YYYY HH24:MI:SS')) a\
nd a.run_type_id like :b3) and a.events is not null ) and a.events>1) and a.r\
un_id=b.run_id(+)) order by a.run_start,a.evt_builder ";
typedef struct { unsigned short len; unsigned char arr[1]; } VARCHAR;
typedef struct { unsigned short len; unsigned char arr[1]; } varchar;
static const short sqlcud0[] =
{13,4130,1,0,0,
5,0,0,1,105,0,4,45,0,0,2,1,0,1,0,2,97,0,0,1,3,0,0,
28,0,0,2,82,0,4,68,0,0,2,1,0,1,0,2,3,0,0,1,97,0,0,
51,0,0,3,65,0,6,91,0,0,2,2,0,1,0,2,3,0,0,1,97,0,0,
74,0,0,4,153,0,4,115,0,0,3,2,0,1,0,2,3,0,0,1,97,0,0,1,97,0,0,
101,0,0,5,113,0,4,143,0,0,3,1,0,1,0,2,9,0,0,2,9,0,0,1,3,0,0,
128,0,0,6,387,0,9,234,0,0,3,3,0,1,0,1,97,0,0,1,97,0,0,1,97,0,0,
155,0,0,6,0,0,13,236,0,0,5,0,0,1,0,2,3,0,0,2,9,0,0,2,97,0,0,2,97,0,0,2,3,0,0,
190,0,0,6,0,0,15,255,0,0,0,0,0,1,0,
205,0,0,7,531,0,9,347,0,0,4,4,0,1,0,1,97,0,0,1,97,0,0,1,97,0,0,1,97,0,0,
236,0,0,7,0,0,13,349,0,0,7,0,0,1,0,2,3,0,0,2,3,0,0,2,9,0,0,2,97,0,0,2,97,0,0,2,
3,0,0,2,3,0,0,
279,0,0,7,0,0,15,371,0,0,0,0,0,1,0,
294,0,0,8,105,0,4,403,0,0,2,1,0,1,0,2,97,0,0,1,97,0,0,
317,0,0,9,102,0,4,409,0,0,2,1,0,1,0,2,97,0,0,1,3,0,0,
340,0,0,10,393,0,4,469,0,0,7,3,0,1,0,2,3,0,0,2,9,0,0,2,97,0,0,2,97,0,0,1,97,0,
0,1,97,0,0,1,97,0,0,
383,0,0,11,107,0,4,526,0,0,2,1,0,1,0,2,97,0,0,1,3,0,0,
406,0,0,12,109,0,4,532,0,0,2,1,0,1,0,2,97,0,0,1,97,0,0,
};
using namespace std;
#include "hora2info.h"
#include "hora2conn.h"
#include "hruninfo.h"
#include "hfileinfo.h"
#include <iostream>
#include <iomanip>
#include <cstdlib>
#define SQLCA_STORAGE_CLASS extern
#define ORACA_STORAGE_CLASS extern
#include <oraca.h>
#include <sqlca.h>
ClassImp(HOra2Info)
#define NMAX_INFO 2000
void HOra2Info::showRunStart(Int_t run) {
int id;
char runDate[21];
short runDate_Ind=-1;
id=run;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 2;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select TO_CHAR(run_start,'DD-MON-YYYY HH24:MI:SS') into :b0\
:b1 from daq.daq_runs_hydra2 where run_id=:b2";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )5;
sqlstm.selerr = (unsigned short)1;
sqlstm.sqlpfmem = (unsigned int )0;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)runDate;
sqlstm.sqhstl[0] = (unsigned long )21;
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( short *)&runDate_Ind;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)&id;
sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode == 1403) goto notfound;
if (sqlca.sqlcode < 0) goto errorfound;
}
if (runDate_Ind>=0) cout<<"Run "<<run<<" started at "<<runDate<<'\n';
else cout << "no Run_Start for run "<<run<<'\n';
return;
notfound:
cout << "Run not found" <<endl;
return;
errorfound:
pConn->showSqlError("showRunStart(Int_t)");
}
Int_t HOra2Info::getRunId(const Text_t* daqFilename) {
char* daqfile;
int run;
daqfile=(Char_t*)daqFilename;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 2;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select run_id into :b0 from daq.daq_files_hydra2 where UPP\
ER(filename)=UPPER(:b1)";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )28;
sqlstm.selerr = (unsigned short)1;
sqlstm.sqlpfmem = (unsigned int )0;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)&run;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)daqfile;
sqlstm.sqhstl[1] = (unsigned long )0;
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode == 1403) goto notfound;
if (sqlca.sqlcode < 0) goto errorfound;
}
return run;
notfound:
Error("getRunId(Text_t*)","No such DAQ file %s",daqFilename);
return -1;
errorfound:
pConn->showSqlError("getRunId(Text_t*)");
return -1;
}
Int_t HOra2Info::getRefRunId(const Text_t* daqFilename) {
char* daqfile;
int run = -1;
daqfile=(Char_t*)daqFilename;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 2;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "begin :run := hades_oper . get_reference_run ( :daqfile ) ;\
END ;";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )51;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)&run;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)daqfile;
sqlstm.sqhstl[1] = (unsigned long )0;
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode == 1403) goto notfound;
if (sqlca.sqlcode < 0) goto errorfound;
}
return run;
notfound:
pConn->showSqlError("getRefRunId(Text_t*)");
return -1;
errorfound:
pConn->showSqlError("getRefRunId(Text_t*)");
return -1;
}
Int_t HOra2Info::getLastRun(const Text_t* beamtime) {
char* bt;
int run;
bt=(Char_t*)beamtime;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 3;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select max(run_id) into :b0 from daq.daq_runs_hydra2 where\
(exp_id=:b1 and run_start=(select max(run_start) from daq.daq_runs_hydra2 wh\
ere exp_id=:b1))";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )74;
sqlstm.selerr = (unsigned short)1;
sqlstm.sqlpfmem = (unsigned int )0;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)&run;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)bt;
sqlstm.sqhstl[1] = (unsigned long )0;
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = (unsigned char *)bt;
sqlstm.sqhstl[2] = (unsigned long )0;
sqlstm.sqhsts[2] = ( int )0;
sqlstm.sqindv[2] = ( short *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned long )0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode == 1403) goto notfound;
if (sqlca.sqlcode < 0) goto errorfound;
}
return run;
notfound:
Error("getLastRun(Text_t*)","No run found for beamtime %s",beamtime);
return -1;
errorfound:
pConn->showSqlError("getLastRun(Text_t*)");
return -1;
}
Bool_t HOra2Info::getDaqFilename(Int_t runId,TString& filename) {
int id;
struct { unsigned short len; unsigned char arr[128]; } fname;
struct { unsigned short len; unsigned char arr[20]; } fstart;
short fname_Ind;
short fstart_Ind;
id=runId;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 3;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select filename ,to_char(run_start,'YYDDDHH24MISS') into :b\
0:b1,:b2:b3 from daq.daq_runs_hydra2 where run_id=:b4";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )101;
sqlstm.selerr = (unsigned short)1;
sqlstm.sqlpfmem = (unsigned int )0;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)&fname;
sqlstm.sqhstl[0] = (unsigned long )130;
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( short *)&fname_Ind;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)&fstart;
sqlstm.sqhstl[1] = (unsigned long )22;
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( short *)&fstart_Ind;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = (unsigned char *)&id;
sqlstm.sqhstl[2] = (unsigned long )sizeof(int);
sqlstm.sqhsts[2] = ( int )0;
sqlstm.sqindv[2] = ( short *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned long )0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode == 1403) goto notfound;
if (sqlca.sqlcode < 0) goto errorfound;
}
if (fname_Ind!=-1) {
fname.arr[fname.len]='\0';
filename=(Char_t*)(fname.arr);
}
if (filename.CompareTo("null")==0) {
if (fstart_Ind!=-1) {
fstart.arr[fstart.len]='\0';
filename="auto";
filename.Append((Char_t*)(fstart.arr));
filename.Append(".hld");
} else {
filename="\0";
Warning("getDaqFilename","No runStart for runId %i",runId);
return kFALSE;
}
}
return kTRUE;
notfound:
Warning("getDaqFilename","RunId %i not found",runId);
return kFALSE;
errorfound:
pConn->showSqlError("getDaqFilename");
return kFALSE;
}
TList* HOra2Info::getListOfRuns(const Char_t* beamtime,
const Char_t* startAt, const Char_t* endAt) {
if (strlen(beamtime)==0) return 0;
TString expName(beamtime);
expName.ToUpper();
TString rangeStart;
TString rangeEnd;
Bool_t rc=kTRUE;
if (expName.Contains("SIM")) return getListOfSimRefRuns(expName.Data(),startAt,endAt);
if (strlen(startAt)!=0) {
rc=getRunStart(startAt,rangeStart);
} else {
rangeStart="01-JAN-2010 00:00:00";
}
if (!rc) return 0;
if (strlen(endAt)!=0) {
rc=getRunStart(endAt,rangeEnd);
} else {
rangeEnd="01-JAN-4000 00:00:00";
}
if (!rc) return 0;
char* pexp;
char* pstart;
char* pend;
struct {
int rid[NMAX_INFO];
struct { unsigned short len; unsigned char arr[82]; } rname[2000];
char ts[NMAX_INFO][21];
char te[NMAX_INFO][21];
int nevt[NMAX_INFO];
} runs;
struct {
short rid_Ind[NMAX_INFO];
short rname_Ind[NMAX_INFO];
short ts_Ind[NMAX_INFO];
short te_Ind[NMAX_INFO];
short nevt_Ind[NMAX_INFO];
} runs_Ind;
pexp=(Char_t*)expName.Data();
pstart=(Char_t*)rangeStart.Data();
pend=(Char_t*)rangeEnd.Data();
Int_t nTot=0;
Int_t nLast=0;
TList* runsList=new TList();
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 3;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = sq0006;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )128;
sqlstm.selerr = (unsigned short)1;
sqlstm.sqlpfmem = (unsigned int )0;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqcmod = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)pexp;
sqlstm.sqhstl[0] = (unsigned long )0;
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)pstart;
sqlstm.sqhstl[1] = (unsigned long )0;
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = (unsigned char *)pend;
sqlstm.sqhstl[2] = (unsigned long )0;
sqlstm.sqhsts[2] = ( int )0;
sqlstm.sqindv[2] = ( short *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned long )0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) goto errorfound;
}
do {
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 5;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )2000;
sqlstm.offset = (unsigned int )155;
sqlstm.selerr = (unsigned short)1;
sqlstm.sqlpfmem = (unsigned int )0;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqfoff = ( int )0;
sqlstm.sqfmod = (unsigned int )2;
sqlstm.sqhstv[0] = (unsigned char *)runs.rid;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( short *)runs_Ind.rid_Ind;
sqlstm.sqinds[0] = ( int )sizeof(short);
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqharc[0] = (unsigned long *)0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)runs.rname;
sqlstm.sqhstl[1] = (unsigned long )83;
sqlstm.sqhsts[1] = ( int )84;
sqlstm.sqindv[1] = ( short *)runs_Ind.rname_Ind;
sqlstm.sqinds[1] = ( int )sizeof(short);
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqharc[1] = (unsigned long *)0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = (unsigned char *)runs.ts;
sqlstm.sqhstl[2] = (unsigned long )21;
sqlstm.sqhsts[2] = ( int )21;
sqlstm.sqindv[2] = ( short *)runs_Ind.ts_Ind;
sqlstm.sqinds[2] = ( int )sizeof(short);
sqlstm.sqharm[2] = (unsigned long )0;
sqlstm.sqharc[2] = (unsigned long *)0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = (unsigned char *)runs.te;
sqlstm.sqhstl[3] = (unsigned long )21;
sqlstm.sqhsts[3] = ( int )21;
sqlstm.sqindv[3] = ( short *)runs_Ind.te_Ind;
sqlstm.sqinds[3] = ( int )sizeof(short);
sqlstm.sqharm[3] = (unsigned long )0;
sqlstm.sqharc[3] = (unsigned long *)0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqhstv[4] = (unsigned char *)runs.nevt;
sqlstm.sqhstl[4] = (unsigned long )sizeof(int);
sqlstm.sqhsts[4] = ( int )sizeof(int);
sqlstm.sqindv[4] = ( short *)runs_Ind.nevt_Ind;
sqlstm.sqinds[4] = ( int )sizeof(short);
sqlstm.sqharm[4] = (unsigned long )0;
sqlstm.sqharc[4] = (unsigned long *)0;
sqlstm.sqadto[4] = (unsigned short )0;
sqlstm.sqtdso[4] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) goto errorfound;
}
nLast=sqlca.sqlerrd[2]-nTot;
for (Int_t i=0;i<nLast;i++) {
runs.rname[i].arr[runs.rname[i].len]='\0';
HRunInfo* p=new HRunInfo((Char_t*)(runs.rname[i].arr));
p->setRunId(runs.rid[i]);
runs.ts[i][20]='\0';
p->setStartTime((Char_t*)(runs.ts[i]));
if (runs_Ind.te_Ind[i]!=-1) {
runs.te[i][20]='\0';
p->setEndTime((Char_t*)(runs.te[i]));
}
if (runs_Ind.nevt_Ind[i]!=-1) {
p->setNumEvents(runs.nevt[i]);
}
runsList->Add(p);
nTot++;
}
} while (nLast==NMAX_INFO);
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 5;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )190;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) goto errorfound;
}
cout<<"*** Total number of runs: "<<nTot<<endl;
return runsList;
errorfound:
pConn->showSqlError("getListOfRuns");
if (runsList) {
runsList->Delete();
delete runsList;
runsList=0;
}
return 0;
}
TList* HOra2Info::getListOfHldFiles(const Char_t* beamtime,
const Char_t* startAt, const Char_t* endAt,
const Char_t* runType) {
if (strlen(beamtime)==0) return 0;
TString expName(beamtime);
expName.ToUpper();
TString rangeStart;
TString rangeEnd;
TString rType="%";
Bool_t rc=kTRUE;
if (expName.Contains("SIM")) return 0;
if (strlen(startAt)!=0) {
rc=getRunStart(startAt,rangeStart);
} else {
rangeStart="01-JAN-2010 00:00:00";
}
if (!rc) return 0;
if (strlen(endAt)!=0) {
rc=getRunStart(endAt,rangeEnd);
} else {
rangeEnd="01-JAN-4000 00:00:00";
}
if (!rc) return 0;
if (strlen(runType)>0) {
rType=runType;
rType=rType+"%";
rType.ToUpper();
}
char* pexp;
char* pstart;
char* pend;
char* ptype;
struct {
int rid[NMAX_INFO];
int evtb[NMAX_INFO];
struct { unsigned short len; unsigned char arr[82]; } rname[2000];
char ts[NMAX_INFO][21];
char te[NMAX_INFO][21];
int nevt[NMAX_INFO];
int current[NMAX_INFO];
} files;
struct {
short rid_Ind[NMAX_INFO];
short rvtb[NMAX_INFO];
short rname_Ind[NMAX_INFO];
short ts_Ind[NMAX_INFO];
short te_Ind[NMAX_INFO];
short nevt_Ind[NMAX_INFO];
short current_Ind[NMAX_INFO];
} files_Ind;
pexp=(Char_t*)expName.Data();
pstart=(Char_t*)rangeStart.Data();
pend=(Char_t*)rangeEnd.Data();
ptype=(Char_t*)rType.Data();
Int_t nTot=0;
Int_t nLast=0;
TList* fileList=new TList();
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 5;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = sq0007;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )205;
sqlstm.selerr = (unsigned short)1;
sqlstm.sqlpfmem = (unsigned int )0;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqcmod = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)pexp;
sqlstm.sqhstl[0] = (unsigned long )0;
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)pstart;
sqlstm.sqhstl[1] = (unsigned long )0;
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = (unsigned char *)pend;
sqlstm.sqhstl[2] = (unsigned long )0;
sqlstm.sqhsts[2] = ( int )0;
sqlstm.sqindv[2] = ( short *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned long )0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = (unsigned char *)ptype;
sqlstm.sqhstl[3] = (unsigned long )0;
sqlstm.sqhsts[3] = ( int )0;
sqlstm.sqindv[3] = ( short *)0;
sqlstm.sqinds[3] = ( int )0;
sqlstm.sqharm[3] = (unsigned long )0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) goto errorfound;
}
do {
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 7;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )2000;
sqlstm.offset = (unsigned int )236;
sqlstm.selerr = (unsigned short)1;
sqlstm.sqlpfmem = (unsigned int )0;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqfoff = ( int )0;
sqlstm.sqfmod = (unsigned int )2;
sqlstm.sqhstv[0] = (unsigned char *)files.rid;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( short *)files_Ind.rid_Ind;
sqlstm.sqinds[0] = ( int )sizeof(short);
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqharc[0] = (unsigned long *)0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)files.evtb;
sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
sqlstm.sqhsts[1] = ( int )sizeof(int);
sqlstm.sqindv[1] = ( short *)files_Ind.rvtb;
sqlstm.sqinds[1] = ( int )sizeof(short);
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqharc[1] = (unsigned long *)0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = (unsigned char *)files.rname;
sqlstm.sqhstl[2] = (unsigned long )83;
sqlstm.sqhsts[2] = ( int )84;
sqlstm.sqindv[2] = ( short *)files_Ind.rname_Ind;
sqlstm.sqinds[2] = ( int )sizeof(short);
sqlstm.sqharm[2] = (unsigned long )0;
sqlstm.sqharc[2] = (unsigned long *)0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = (unsigned char *)files.ts;
sqlstm.sqhstl[3] = (unsigned long )21;
sqlstm.sqhsts[3] = ( int )21;
sqlstm.sqindv[3] = ( short *)files_Ind.ts_Ind;
sqlstm.sqinds[3] = ( int )sizeof(short);
sqlstm.sqharm[3] = (unsigned long )0;
sqlstm.sqharc[3] = (unsigned long *)0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqhstv[4] = (unsigned char *)files.te;
sqlstm.sqhstl[4] = (unsigned long )21;
sqlstm.sqhsts[4] = ( int )21;
sqlstm.sqindv[4] = ( short *)files_Ind.te_Ind;
sqlstm.sqinds[4] = ( int )sizeof(short);
sqlstm.sqharm[4] = (unsigned long )0;
sqlstm.sqharc[4] = (unsigned long *)0;
sqlstm.sqadto[4] = (unsigned short )0;
sqlstm.sqtdso[4] = (unsigned short )0;
sqlstm.sqhstv[5] = (unsigned char *)files.nevt;
sqlstm.sqhstl[5] = (unsigned long )sizeof(int);
sqlstm.sqhsts[5] = ( int )sizeof(int);
sqlstm.sqindv[5] = ( short *)files_Ind.nevt_Ind;
sqlstm.sqinds[5] = ( int )sizeof(short);
sqlstm.sqharm[5] = (unsigned long )0;
sqlstm.sqharc[5] = (unsigned long *)0;
sqlstm.sqadto[5] = (unsigned short )0;
sqlstm.sqtdso[5] = (unsigned short )0;
sqlstm.sqhstv[6] = (unsigned char *)files.current;
sqlstm.sqhstl[6] = (unsigned long )sizeof(int);
sqlstm.sqhsts[6] = ( int )sizeof(int);
sqlstm.sqindv[6] = ( short *)files_Ind.current_Ind;
sqlstm.sqinds[6] = ( int )sizeof(short);
sqlstm.sqharm[6] = (unsigned long )0;
sqlstm.sqharc[6] = (unsigned long *)0;
sqlstm.sqadto[6] = (unsigned short )0;
sqlstm.sqtdso[6] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) goto errorfound;
}
nLast=sqlca.sqlerrd[2]-nTot;
for (Int_t i=0;i<nLast;i++) {
files.rname[i].arr[files.rname[i].len]='\0';
HFileInfo* p=new HFileInfo((Char_t*)(files.rname[i].arr));
p->setRunId(files.rid[i]);
files.ts[i][20]='\0';
p->setStartTime((Char_t*)(files.ts[i]));
if (files_Ind.te_Ind[i]!=-1) {
files.te[i][20]='\0';
p->setEndTime((Char_t*)(files.te[i]));
}
if (files_Ind.nevt_Ind[i]!=-1) {
p->setNumEvents(files.nevt[i]);
}
if (files_Ind.current_Ind[i]!=-1) {
p->setMagnetCurrent(files.current[i]);
}
fileList->Add(p);
nTot++;
}
} while (nLast==NMAX_INFO);
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 7;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )279;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) goto errorfound;
}
cout<<"*** Total number of files: "<<nTot<<endl;
return fileList;
errorfound:
pConn->showSqlError("getListOfHldFiles");
if (fileList) {
fileList->Delete();
delete fileList;
fileList=0;
}
return 0;
}
Bool_t HOra2Info::getRunStart(const Char_t* pString,TString& pTime) {
TString s(pString);
char* pfile;
int pid;
char ts[21];
pfile=0;
pid=-1;
if (s.Contains("-")) {
pTime=pString;
} else {
if (s.Contains(".hld")) {
pfile=(Char_t*)pString;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 7;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select TO_CHAR(run_start,'DD-MON-YYYY HH24:MI:SS') into\
:b0 from daq.daq_files_hydra2 where filename=:b1";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )294;
sqlstm.selerr = (unsigned short)1;
sqlstm.sqlpfmem = (unsigned int )0;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)ts;
sqlstm.sqhstl[0] = (unsigned long )21;
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)pfile;
sqlstm.sqhstl[1] = (unsigned long )0;
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode == 1403) goto notfound;
if (sqlca.sqlcode < 0) goto errorfound;
}
} else {
pid=atoi(pString);
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 7;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select TO_CHAR(run_start,'DD-MON-YYYY HH24:MI:SS') into\
:b0 from daq.daq_runs_hydra2 where run_id=:b1";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )317;
sqlstm.selerr = (unsigned short)1;
sqlstm.sqlpfmem = (unsigned int )0;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)ts;
sqlstm.sqhstl[0] = (unsigned long )21;
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)&pid;
sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode == 1403) goto notfound;
if (sqlca.sqlcode < 0) goto errorfound;
}
}
ts[20]='\0';
pTime=ts;
}
return kTRUE;
errorfound:
pConn->showSqlError("getRunStart");
return kFALSE;
notfound:
Error("getRunStart","Run not found for %s",pString);
return kFALSE;
}
TList* HOra2Info::getListOfSimRefRuns(const Char_t* project,
const Char_t* startAt, const Char_t* endAt) {
TString rangeStart;
TString rangeEnd;
Bool_t rc=kTRUE;
if (strlen(startAt)!=0) {
rc=getSimRefRunStart(startAt,rangeStart);
} else {
rangeStart="01-JAN-2010 00:00:00";
}
if (!rc) return 0;
if (strlen(endAt)!=0) {
rc=getSimRefRunStart(endAt,rangeEnd);
} else {
rangeEnd="01-JAN-4000 00:00:00";
}
if (!rc) return 0;
char* pexp;
char* pstart;
char* pend;
struct {
int rid[NMAX_INFO];
struct { unsigned short len; unsigned char arr[82]; } rname[2000];
char ts[NMAX_INFO][21];
char te[NMAX_INFO][21];
} refruns;
struct {
short rid_Ind[NMAX_INFO];
short rname_Ind[NMAX_INFO];
short ts_Ind[NMAX_INFO];
short te_Ind[NMAX_INFO];
} refruns_Ind;
pexp=(Char_t*)project;
pstart=(Char_t*)rangeStart.Data();
pend=(Char_t*)rangeEnd.Data();
Int_t nRuns=0;
TList* runsList=new TList();
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 7;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select ref_run_id ,ref_run_name ,TO_CHAR(run_start,'DD-MON-\
YYYY HH24:MI:SS') ,TO_CHAR(run_stop,'DD-MON-YYYY HH24:MI:SS') into :s1:s2 ,:s3\
:s4 ,:s5:s6 ,:s7:s8 from hanal2.simul_project p ,hanal2.simul_ref_run rr whe\
re ((upper(exp_id)=:b2 and p.project_id=rr.project_id) and run_start between T\
O_DATE(:b3,'DD-MON-YYYY HH24:MI:SS') and TO_DATE(:b4,'DD-MON-YYYY HH24:MI:SS')\
) order by ref_run_id ";
sqlstm.iters = (unsigned int )2000;
sqlstm.offset = (unsigned int )340;
sqlstm.selerr = (unsigned short)1;
sqlstm.sqlpfmem = (unsigned int )0;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)refruns.rid;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( short *)refruns_Ind.rid_Ind;
sqlstm.sqinds[0] = ( int )sizeof(short);
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqharc[0] = (unsigned long *)0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)refruns.rname;
sqlstm.sqhstl[1] = (unsigned long )83;
sqlstm.sqhsts[1] = ( int )84;
sqlstm.sqindv[1] = ( short *)refruns_Ind.rname_Ind;
sqlstm.sqinds[1] = ( int )sizeof(short);
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqharc[1] = (unsigned long *)0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = (unsigned char *)refruns.ts;
sqlstm.sqhstl[2] = (unsigned long )21;
sqlstm.sqhsts[2] = ( int )21;
sqlstm.sqindv[2] = ( short *)refruns_Ind.ts_Ind;
sqlstm.sqinds[2] = ( int )sizeof(short);
sqlstm.sqharm[2] = (unsigned long )0;
sqlstm.sqharc[2] = (unsigned long *)0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = (unsigned char *)refruns.te;
sqlstm.sqhstl[3] = (unsigned long )21;
sqlstm.sqhsts[3] = ( int )21;
sqlstm.sqindv[3] = ( short *)refruns_Ind.te_Ind;
sqlstm.sqinds[3] = ( int )sizeof(short);
sqlstm.sqharm[3] = (unsigned long )0;
sqlstm.sqharc[3] = (unsigned long *)0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqhstv[4] = (unsigned char *)pexp;
sqlstm.sqhstl[4] = (unsigned long )0;
sqlstm.sqhsts[4] = ( int )0;
sqlstm.sqindv[4] = ( short *)0;
sqlstm.sqinds[4] = ( int )0;
sqlstm.sqharm[4] = (unsigned long )0;
sqlstm.sqadto[4] = (unsigned short )0;
sqlstm.sqtdso[4] = (unsigned short )0;
sqlstm.sqhstv[5] = (unsigned char *)pstart;
sqlstm.sqhstl[5] = (unsigned long )0;
sqlstm.sqhsts[5] = ( int )0;
sqlstm.sqindv[5] = ( short *)0;
sqlstm.sqinds[5] = ( int )0;
sqlstm.sqharm[5] = (unsigned long )0;
sqlstm.sqadto[5] = (unsigned short )0;
sqlstm.sqtdso[5] = (unsigned short )0;
sqlstm.sqhstv[6] = (unsigned char *)pend;
sqlstm.sqhstl[6] = (unsigned long )0;
sqlstm.sqhsts[6] = ( int )0;
sqlstm.sqindv[6] = ( short *)0;
sqlstm.sqinds[6] = ( int )0;
sqlstm.sqharm[6] = (unsigned long )0;
sqlstm.sqadto[6] = (unsigned short )0;
sqlstm.sqtdso[6] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) goto errorfound;
}
nRuns=sqlca.sqlerrd[2];
for (Int_t i=0;i<nRuns;i++) {
refruns.rname[i].arr[refruns.rname[i].len]='\0';
HRunInfo* p=new HRunInfo((Char_t*)(refruns.rname[i].arr));
p->setRunId(refruns.rid[i]);
refruns.ts[i][20]='\0';
p->setStartTime((Char_t*)(refruns.ts[i]));
if (refruns_Ind.te_Ind[i]!=-1) {
refruns.te[i][20]='\0';
p->setEndTime((Char_t*)(refruns.te[i]));
}
runsList->Add(p);
}
cout<<"*** Total number of runs: "<<nRuns<<endl;
return runsList;
errorfound:
pConn->showSqlError("getListOfSimRefRuns");
if (runsList) {
runsList->Delete();
delete runsList;
runsList=0;
}
return 0;
}
Bool_t HOra2Info::getSimRefRunStart(const Char_t* pString,TString& pTime) {
TString s(pString);
char* pfile;
int pid;
char ts[21];
pfile=0;
pid=-1;
if (s.Contains("-")) {
pTime=pString;
} else {
Char_t c=pString[0];
if (c=='1'||c=='2'||c=='3'||c=='4'||c=='5'||c=='6'||c=='7'||c=='8'||c=='9') {
pid=atoi(pString);
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 7;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select TO_CHAR(run_start,'DD-MON-YYYY HH24:MI:SS') into\
:b0 from hanal2.simul_ref_run where ref_run_id=:b1";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )383;
sqlstm.selerr = (unsigned short)1;
sqlstm.sqlpfmem = (unsigned int )0;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)ts;
sqlstm.sqhstl[0] = (unsigned long )21;
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)&pid;
sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode == 1403) goto notfound;
if (sqlca.sqlcode < 0) goto errorfound;
}
} else {
pfile=(Char_t*)pString;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 7;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select TO_CHAR(run_start,'DD-MON-YYYY HH24:MI:SS') into\
:b0 from hanal2.simul_ref_run where ref_run_name=:b1";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )406;
sqlstm.selerr = (unsigned short)1;
sqlstm.sqlpfmem = (unsigned int )0;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)ts;
sqlstm.sqhstl[0] = (unsigned long )21;
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)pfile;
sqlstm.sqhstl[1] = (unsigned long )0;
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode == 1403) goto notfound;
if (sqlca.sqlcode < 0) goto errorfound;
}
}
ts[20]='\0';
pTime=ts;
}
return kTRUE;
errorfound:
pConn->showSqlError("getRefRunStart");
return kFALSE;
notfound:
Error("getRefRunStart","Simulation reference run not found for %s",pString);
return kFALSE;
}