#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[18];
};
static const struct sqlcxp sqlfpn =
{
17,
"hwallparora2io.pc"
};
static unsigned int sqlctx = 9879331;
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[8];
unsigned long sqhstl[8];
int sqhsts[8];
short *sqindv[8];
int sqinds[8];
unsigned long sqharm[8];
unsigned long *sqharc[8];
unsigned short sqadto[8];
unsigned short sqtdso[8];
} sqlstm = {13,8};
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 *); }
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,167,0,4,108,0,0,4,1,0,1,0,2,3,0,0,2,4,0,0,2,4,0,0,1,3,0,0,
36,0,0,2,165,0,4,115,0,0,4,1,0,1,0,2,3,0,0,2,4,0,0,2,4,0,0,1,3,0,0,
67,0,0,3,110,0,4,150,0,0,4,1,0,1,0,2,3,0,0,2,3,0,0,2,3,0,0,1,3,0,0,
98,0,0,4,177,0,4,191,0,0,8,1,0,1,0,2,3,0,0,2,4,0,0,2,4,0,0,2,4,0,0,2,4,0,0,2,4,
0,0,2,4,0,0,1,3,0,0,
145,0,0,5,102,0,4,269,0,0,2,0,0,1,0,2,3,0,0,2,9,0,0,
168,0,0,6,243,0,6,314,0,0,5,5,0,1,0,3,3,0,0,1,3,0,0,1,3,0,0,1,97,0,0,1,97,0,0,
203,0,0,7,239,0,6,323,0,0,5,5,0,1,0,3,3,0,0,1,3,0,0,1,3,0,0,1,97,0,0,1,97,0,0,
238,0,0,8,105,0,3,369,0,0,4,4,0,1,0,1,3,0,0,1,3,0,0,1,3,0,0,1,3,0,0,
269,0,0,9,163,0,3,415,0,0,8,8,0,1,0,1,3,0,0,1,3,0,0,1,4,0,0,1,4,0,0,1,4,0,0,1,
4,0,0,1,4,0,0,1,4,0,0,
};
using namespace std;
#include "hwallparora2io.h"
#include "hparora2set.h"
#include "hwalltrb2lookup.h"
#include "hwallcalpar.h"
#include "hwallgeompar.h"
#include "hgeomcompositevolume.h"
#include "hora2geomdetversion.h"
#include "TClass.h"
#include <iostream>
#include <iomanip>
#include <unistd.h>
#define SQLCA_STORAGE_CLASS extern
#define ORACA_STORAGE_CLASS extern
#include <oraca.h>
#include <sqlca.h>
ClassImp(HWallParOra2Io)
#define WALL_MAXCELLS 302
#define WALL_MAXTRBCHANNELS 128
HWallParOra2Io::HWallParOra2Io(HOra2Conn* pC) : HDetParOra2Io(pC) {
fName="HWallParIo";
geomVers=0;
}
HWallParOra2Io::~HWallParOra2Io() {
if (geomVers) delete geomVers;
}
Bool_t HWallParOra2Io::init(HParSet* pPar,Int_t* set) {
if (getRunStart(pPar)<0) {
pPar->setInputVersion(-1,inputNumber);
return kFALSE;
}
const Text_t* name=pPar->IsA()->GetName();
if (strcmp(name,"HWallTrb2Lookup")==0) return read(((HWallTrb2Lookup*)pPar));
if (strcmp(name,"HWallCalPar")==0) return read(((HWallCalPar*)pPar));
if (strcmp(name,"HWallGeomPar")==0) return read(((HWallGeomPar*)pPar),set);
return kFALSE;
}
Int_t HWallParOra2Io::write(HParSet* pPar) {
if (getRunStart(pPar)<=0) return -1;
const Text_t* name=pPar->IsA()->GetName();
if (strcmp(name,"HWallTrb2Lookup")==0) return writePar((HWallTrb2Lookup*)pPar);
if (strcmp(name,"HWallCalPar")==0) return writePar((HWallCalPar*)pPar);
if (strcmp(name,"HWallGeomPar")==0) return writeAlignment((HWallGeomPar*)pPar);
cout<<"No write-interface to Oracle for parameter container "
<<pPar->GetName()<<endl;
return 0;
}
Bool_t HWallParOra2Io::getVersion(HParSet* pPar,Int_t& version) {
HParOra2Set* oraSet=getOraSet(pPar);
if (oraSet->contextId==-1 || runStart==-1) {
pPar->setInputVersion(-1,inputNumber);
version=-1;
return kFALSE;
}
Int_t contVers=pPar->getInputVersion(inputNumber);
if (contVers!=-1 && runStart>=oraSet->versDate[0] && runStart<=oraSet->versDate[1]) {
version=contVers;
return kFALSE;
}
const Char_t* containerClass=pPar->IsA()->GetName();
oraSet->clearVersDate();
int context;
int vers;
double since;
double until;
context=oraSet->contextId;
if (strcmp(containerClass,"HWallTrb2Lookup")==0) {
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select version ,hanadate.date_to_number(valid_since) ,han\
adate.date_to_number(valid_until) into :b0,:b1,:b2 from wall_ana.trb2lookup_v\
ers_at_date where context_id=:b3";
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 *)&vers;
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 *)&since;
sqlstm.sqhstl[1] = (unsigned long )sizeof(double);
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 *)&until;
sqlstm.sqhstl[2] = (unsigned long )sizeof(double);
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 *)&context;
sqlstm.sqhstl[3] = (unsigned long )sizeof(int);
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 == 1403) goto notfound;
if (sqlca.sqlcode < 0) showSqlError("getVersion(HParSet*,Int_t&)");
}
} else if (strcmp(containerClass,"HWallCalPar")==0) {
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select version ,hanadate.date_to_number(valid_since) ,han\
adate.date_to_number(valid_until) into :b0,:b1,:b2 from wall_ana.calpar_vers_\
at_date_2 where context_id=:b3";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )36;
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 *)&vers;
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 *)&since;
sqlstm.sqhstl[1] = (unsigned long )sizeof(double);
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 *)&until;
sqlstm.sqhstl[2] = (unsigned long )sizeof(double);
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 *)&context;
sqlstm.sqhstl[3] = (unsigned long )sizeof(int);
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 == 1403) goto notfound;
if (sqlca.sqlcode < 0) showSqlError("getVersion(HParSet*,Int_t&)");
}
}
version=vers;
oraSet->versDate[0]=since;
oraSet->versDate[1]=until;
return kTRUE;
notfound:
pPar->setInputVersion(-1,inputNumber);
version=-1;
return kFALSE;
};
Bool_t HWallParOra2Io::read(HWallTrb2Lookup* pPar) {
Int_t oraVersion=-1;
Bool_t rc=getVersion(pPar,oraVersion);
if (oraVersion<0) return kFALSE;
if (oraVersion>=0&&rc==kFALSE) return kTRUE;
pPar->clear();
int vers;
struct {
int address[WALL_MAXCELLS];
int chan[WALL_MAXCELLS];
int cell[WALL_MAXCELLS];
} lookup;
vers=oraVersion;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select trbnet_address ,channel ,cell into :s1 ,:s2 ,:s3 f\
rom wall_ana.trb2lookup_data_view where vers_id=:b1";
sqlstm.iters = (unsigned int )302;
sqlstm.offset = (unsigned int )67;
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 *)lookup.address;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
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 *)lookup.chan;
sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
sqlstm.sqhsts[1] = ( int )sizeof(int);
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
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 *)lookup.cell;
sqlstm.sqhstl[2] = (unsigned long )sizeof(int);
sqlstm.sqhsts[2] = ( int )sizeof(int);
sqlstm.sqindv[2] = ( short *)0;
sqlstm.sqinds[2] = ( int )0;
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 *)&vers;
sqlstm.sqhstl[3] = (unsigned long )sizeof(int);
sqlstm.sqhsts[3] = ( int )sizeof(int);
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) showSqlError("read(HWallTrb2Lookup*)");
}
Int_t nData=sqlca.sqlerrd[2];
for (Int_t i=0;i<nData;i++) {
pPar->fill(lookup.address[i],lookup.chan[i],lookup.cell[i]-1);
}
if (nData>0) {
setChanged(pPar,oraVersion);
cout<<pPar->GetName()<<" initialized from Oracle\n";
rc=kTRUE;
} else {
pPar->setInputVersion(-1,inputNumber);
rc=kFALSE;
}
return rc;
}
Bool_t HWallParOra2Io::read(HWallCalPar* pPar) {
Int_t oraVersion=-1;
Bool_t rc=getVersion(pPar,oraVersion);
if (oraVersion<0) return kFALSE;
if (oraVersion>=0&&rc==kFALSE) return kTRUE;
pPar->clear();
int vers;
struct {
int cell[WALL_MAXCELLS];
float tslope[WALL_MAXCELLS];
float toffset[WALL_MAXCELLS];
float aslope[WALL_MAXCELLS];
float aoffset[WALL_MAXCELLS];
float wcorr1[WALL_MAXCELLS];
float wcorr2[WALL_MAXCELLS];
} cal;
vers=oraVersion;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 8;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select cell_id ,tdc_slope ,tdc_offset ,adc_slope ,adc_offse\
t ,tdc_walk_corr1 ,tdc_walk_corr2 into :s1 ,:s2 ,:s3 ,:s4 ,:s5 ,:s6 ,:s7 fro\
m wall_ana.calpar_data where vers_id=:b1";
sqlstm.iters = (unsigned int )302;
sqlstm.offset = (unsigned int )98;
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 *)cal.cell;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
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 *)cal.tslope;
sqlstm.sqhstl[1] = (unsigned long )sizeof(float);
sqlstm.sqhsts[1] = ( int )sizeof(float);
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
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 *)cal.toffset;
sqlstm.sqhstl[2] = (unsigned long )sizeof(float);
sqlstm.sqhsts[2] = ( int )sizeof(float);
sqlstm.sqindv[2] = ( short *)0;
sqlstm.sqinds[2] = ( int )0;
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 *)cal.aslope;
sqlstm.sqhstl[3] = (unsigned long )sizeof(float);
sqlstm.sqhsts[3] = ( int )sizeof(float);
sqlstm.sqindv[3] = ( short *)0;
sqlstm.sqinds[3] = ( int )0;
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 *)cal.aoffset;
sqlstm.sqhstl[4] = (unsigned long )sizeof(float);
sqlstm.sqhsts[4] = ( int )sizeof(float);
sqlstm.sqindv[4] = ( short *)0;
sqlstm.sqinds[4] = ( int )0;
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 *)cal.wcorr1;
sqlstm.sqhstl[5] = (unsigned long )sizeof(float);
sqlstm.sqhsts[5] = ( int )sizeof(float);
sqlstm.sqindv[5] = ( short *)0;
sqlstm.sqinds[5] = ( int )0;
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 *)cal.wcorr2;
sqlstm.sqhstl[6] = (unsigned long )sizeof(float);
sqlstm.sqhsts[6] = ( int )sizeof(float);
sqlstm.sqindv[6] = ( short *)0;
sqlstm.sqinds[6] = ( int )0;
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.sqhstv[7] = (unsigned char *)&vers;
sqlstm.sqhstl[7] = (unsigned long )sizeof(int);
sqlstm.sqhsts[7] = ( int )sizeof(int);
sqlstm.sqindv[7] = ( short *)0;
sqlstm.sqinds[7] = ( int )0;
sqlstm.sqharm[7] = (unsigned long )0;
sqlstm.sqadto[7] = (unsigned short )0;
sqlstm.sqtdso[7] = (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) showSqlError("read(HWallCalPar*,Int_t*)");
}
Int_t nData=sqlca.sqlerrd[2];
if (nData>0) {
for(Int_t i=0;i<nData;i++) {
(*pPar)[cal.cell[i]-1].fill(cal.tslope[i],cal.toffset[i],
cal.wcorr1[i],cal.wcorr2[i],
cal.aslope[i],cal.aoffset[i]);
}
setChanged(pPar,oraVersion);
cout<<pPar->GetName()<<" initialized from Oracle\n";
rc=kTRUE;
} else {
pPar->setInputVersion(-1,inputNumber);
rc=kFALSE;
}
return rc;
}
Bool_t HWallParOra2Io::read(HWallGeomPar* pPar, Int_t* set) {
Bool_t allFound=kTRUE;
Int_t detId=-1;
if (!geomVers) {
detId=getDetectorId(pPar->getDetectorName());
geomVers=new HOra2GeomDetVersion(pPar->getDetectorName(),detId);
} else {
detId=geomVers->getDetectorId();
}
if (detId<=0) {
allFound=kFALSE;
delete geomVers;
geomVers=0;
}
if (detId>0&&pPar->isFirstInitialization()) {
if (!readModGeomNames(pPar) || !readCompGeomNames(pPar)) {
allFound=kFALSE;
pPar->clear();
} else addGeomOraSet(pPar);
}
if (allFound) allFound=readDetectorGeometry(pPar,set,geomVers);
return allFound;
}
Bool_t HWallParOra2Io::readModGeomNames(HWallGeomPar* pPar) {
Bool_t allFound=kFALSE;
TString modName=pPar->getDetectorName();
modName.ToUpper();
HModGeomPar* pMod=pPar->getModule(-1,0);
if (pMod) {
pMod->SetName(modName);
pMod->setRefName(modName);
HGeomCompositeVolume* refMod=pPar->getRefVolume(0);
if (refMod==0) {
refMod=new HGeomCompositeVolume(pPar->getNumComponents());
refMod->SetName(modName);
pPar->addRefVolume(refMod,0);
}
pMod->setVolume(refMod);
allFound=kTRUE;
}
return allFound;
}
Bool_t HWallParOra2Io::readCompGeomNames(HWallGeomPar* pPar) {
struct {
int cell[WALL_MAXCELLS];
struct { unsigned short len; unsigned char arr[10]; } oname[302];
} lrecG;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 8;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "select id ,geom_obj_name into :s1 ,:s2 from wall_ana.dete\
ctor_cell where geom_obj_name is not null ";
sqlstm.iters = (unsigned int )302;
sqlstm.offset = (unsigned int )145;
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 *)lrecG.cell;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
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 *)lrecG.oname;
sqlstm.sqhstl[1] = (unsigned long )11;
sqlstm.sqhsts[1] = ( int )12;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
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.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) showSqlError("readCompGeomNames(...)");
}
Int_t nCells=sqlca.sqlerrd[2];
for(Int_t k=0;k<nCells;k++) {
HModGeomPar* pMod=pPar->getModule(-1,0);
HGeomCompositeVolume* pRefMod=pMod->getRefVolume();
lrecG.oname[k].arr[lrecG.oname[k].len]='\0';
HGeomVolume* volu=pRefMod->getComponent((lrecG.cell[k]-1));
volu->SetName((Char_t*)(lrecG.oname[k].arr));
}
return (nCells>0) ? kTRUE : kFALSE;
}
Int_t HWallParOra2Io::createVers(HParSet* pPar) {
cout<<"--------------- "<<pPar->GetName()<<" ---------------\n";
if (strlen(pPar->getAuthor())==0) {
Error("createVers(HParSet*)",
"author of parameters not defined");
return -1;
}
if (strlen(pPar->getDescription())==0) {
Error("createVers(HParSet*)",
"descriction of parameters not defined");
return -1;
}
int vers=-1;
int context;
int run;
char* creator;
char* descript;
context = getContextId(pPar->IsA()->GetName(),pPar->getParamContext());
if (context==-1) return -1;
run=getActRunId();
creator=(Char_t*)pPar->getAuthor();
descript=(Char_t*)pPar->getDescription();
const Char_t* contName=pPar->IsA()->GetName();
if (strcmp(contName,"HWallTrb2Lookup")==0) {
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 8;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "begin SELECT wall_ana . wall_par_query . next_version INT\
O :vers FROM DUAL ; INSERT INTO wall_ana . trb2lookup_vers ( vers_id , orig_co\
ntext_id , run_id , author , description ) VALUES ( :vers , :context , :run , \
:creator , :descript ) ; END ;";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )168;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)&vers;
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 *)&context;
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.sqhstv[2] = (unsigned char *)&run;
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.sqhstv[3] = (unsigned char *)creator;
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.sqhstv[4] = (unsigned char *)descript;
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.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 errorfound;
if (sqlca.sqlcode < 0) goto errorfound;
}
} else if (strcmp(contName,"HWallCalPar")==0) {
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 8;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "begin SELECT wall_ana . wall_par_query . next_version INT\
O :vers FROM DUAL ; INSERT INTO wall_ana . calpar_vers ( vers_id , orig_contex\
t_id , run_id , author , description ) VALUES ( :vers , :context , :run , :cre\
ator , :descript ) ; END ;";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )203;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)&vers;
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 *)&context;
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.sqhstv[2] = (unsigned char *)&run;
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.sqhstv[3] = (unsigned char *)creator;
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.sqhstv[4] = (unsigned char *)descript;
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.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 errorfound;
if (sqlca.sqlcode < 0) goto errorfound;
}
}
cout<<"Oracle version for "<<pPar->GetName()<<" created: "<<vers<<endl;
return vers;
errorfound:
showSqlError("createVers(HParSet*)");
return vers;
}
Int_t HWallParOra2Io:: writePar(HWallTrb2Lookup* pPar) {
Int_t version=createVers(pPar);
if (version==-1) return -1;
int rows_to_insert;
int vers[WALL_MAXTRBCHANNELS];
int address[WALL_MAXTRBCHANNELS];
int chan[WALL_MAXTRBCHANNELS];
int cell[WALL_MAXTRBCHANNELS];
Int_t nChan=0;
Int_t arrayOffset=pPar->getArrayOffset();
for(Int_t b=0;b<pPar->getSize();b++) {
HWallTrb2LookupBoard* board=(*pPar)[b];
if (board) {
nChan=0;
for(Int_t t=0;t<board->getSize();t++) {
HWallTrb2LookupChan& rChan=(*board)[t];
if (rChan.getCell()!=-1) {
vers[nChan]=version;
address[nChan]=arrayOffset+b;
chan[nChan]=t;
cell[nChan]=rChan.getCell()+1;
nChan++;
}
}
rows_to_insert=nChan;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 8;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "insert into wall_ana.trb2lookup_data (vers_id,trbnet_ad\
dress,channel_id,cell_id) values (:b1,:b2,:b3,:b4)";
sqlstm.iters = (unsigned int )rows_to_insert;
sqlstm.offset = (unsigned int )238;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)vers;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
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 *)address;
sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
sqlstm.sqhsts[1] = ( int )sizeof(int);
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
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 *)chan;
sqlstm.sqhstl[2] = (unsigned long )sizeof(int);
sqlstm.sqhsts[2] = ( int )sizeof(int);
sqlstm.sqindv[2] = ( short *)0;
sqlstm.sqinds[2] = ( int )0;
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 *)cell;
sqlstm.sqhstl[3] = (unsigned long )sizeof(int);
sqlstm.sqhsts[3] = ( int )sizeof(int);
sqlstm.sqindv[3] = ( short *)0;
sqlstm.sqinds[3] = ( int )0;
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.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 errorfound;
if (sqlca.sqlcode < 0) goto errorfound;
}
cout<<"trbnet-address "<<"0x"<<hex<<(arrayOffset+b)<<dec<<": "<<rows_to_insert<<" rows inserted\n";
}
}
commit();
pPar->setChanged(kFALSE);
return version;
errorfound:
showSqlError("writePar(HWallTrb2Lookup*)");
rollback();
pPar->setChanged(kFALSE);
return -1;
}
Int_t HWallParOra2Io:: writePar(HWallCalPar* pPar) {
Int_t version=createVers(pPar);
if (version==-1) return -1;
int vers[WALL_MAXCELLS];
int cell[WALL_MAXCELLS];
float tslope[WALL_MAXCELLS];
float toffset[WALL_MAXCELLS];
float aslope[WALL_MAXCELLS];
float aoffset[WALL_MAXCELLS];
float wcorr1[WALL_MAXCELLS];
float wcorr2[WALL_MAXCELLS];
int rows_to_insert;
rows_to_insert=pPar->getSize();
for(Int_t i=0;i<rows_to_insert;i++) {
HWallCalParCell& c=(*pPar)[i];
cell[i]=i+1;
vers[i]=version;
tslope[i]=c.getTDC_Slope();
toffset[i]=c.getTDC_Offset();
aslope[i]=c.getADC_Slope();
aoffset[i]=c.getADC_Offset();
wcorr1[i]=c.getTDC_WalkCorr1();
wcorr2[i]=c.getTDC_WalkCorr2();
}
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 8;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "insert into wall_ana.calpar_data (cell_id,vers_id,tdc_slope\
,tdc_offset,adc_slope,adc_offset,tdc_walk_corr1,tdc_walk_corr2) values (:b1,:b\
2,:b3,:b4,:b5,:b6,:b7,:b8)";
sqlstm.iters = (unsigned int )rows_to_insert;
sqlstm.offset = (unsigned int )269;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)cell;
sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
sqlstm.sqhsts[0] = ( int )sizeof(int);
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
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 *)vers;
sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
sqlstm.sqhsts[1] = ( int )sizeof(int);
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
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 *)tslope;
sqlstm.sqhstl[2] = (unsigned long )sizeof(float);
sqlstm.sqhsts[2] = ( int )sizeof(float);
sqlstm.sqindv[2] = ( short *)0;
sqlstm.sqinds[2] = ( int )0;
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 *)toffset;
sqlstm.sqhstl[3] = (unsigned long )sizeof(float);
sqlstm.sqhsts[3] = ( int )sizeof(float);
sqlstm.sqindv[3] = ( short *)0;
sqlstm.sqinds[3] = ( int )0;
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 *)aslope;
sqlstm.sqhstl[4] = (unsigned long )sizeof(float);
sqlstm.sqhsts[4] = ( int )sizeof(float);
sqlstm.sqindv[4] = ( short *)0;
sqlstm.sqinds[4] = ( int )0;
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 *)aoffset;
sqlstm.sqhstl[5] = (unsigned long )sizeof(float);
sqlstm.sqhsts[5] = ( int )sizeof(float);
sqlstm.sqindv[5] = ( short *)0;
sqlstm.sqinds[5] = ( int )0;
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 *)wcorr1;
sqlstm.sqhstl[6] = (unsigned long )sizeof(float);
sqlstm.sqhsts[6] = ( int )sizeof(float);
sqlstm.sqindv[6] = ( short *)0;
sqlstm.sqinds[6] = ( int )0;
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.sqhstv[7] = (unsigned char *)wcorr2;
sqlstm.sqhstl[7] = (unsigned long )sizeof(float);
sqlstm.sqhsts[7] = ( int )sizeof(float);
sqlstm.sqindv[7] = ( short *)0;
sqlstm.sqinds[7] = ( int )0;
sqlstm.sqharm[7] = (unsigned long )0;
sqlstm.sqharc[7] = (unsigned long *)0;
sqlstm.sqadto[7] = (unsigned short )0;
sqlstm.sqtdso[7] = (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 errorfound;
if (sqlca.sqlcode < 0) goto errorfound;
}
commit();
cout<<rows_to_insert<<" rows inserted\n";
pPar->setChanged(kFALSE);
return version;
errorfound:
showSqlError("writePar(HWallCalPar*)");
rollback();
pPar->setChanged(kFALSE);
return -1;
}
hwallparora2io.pc.cc:1000 hwallparora2io.pc.cc:1001 hwallparora2io.pc.cc:1002 hwallparora2io.pc.cc:1003 hwallparora2io.pc.cc:1004 hwallparora2io.pc.cc:1005 hwallparora2io.pc.cc:1006 hwallparora2io.pc.cc:1007 hwallparora2io.pc.cc:1008 hwallparora2io.pc.cc:1009 hwallparora2io.pc.cc:1010 hwallparora2io.pc.cc:1011 hwallparora2io.pc.cc:1012 hwallparora2io.pc.cc:1013 hwallparora2io.pc.cc:1014 hwallparora2io.pc.cc:1015 hwallparora2io.pc.cc:1016 hwallparora2io.pc.cc:1017 hwallparora2io.pc.cc:1018 hwallparora2io.pc.cc:1019 hwallparora2io.pc.cc:1020 hwallparora2io.pc.cc:1021 hwallparora2io.pc.cc:1022 hwallparora2io.pc.cc:1023 hwallparora2io.pc.cc:1024 hwallparora2io.pc.cc:1025 hwallparora2io.pc.cc:1026 hwallparora2io.pc.cc:1027 hwallparora2io.pc.cc:1028 hwallparora2io.pc.cc:1029 hwallparora2io.pc.cc:1030 hwallparora2io.pc.cc:1031 hwallparora2io.pc.cc:1032 hwallparora2io.pc.cc:1033 hwallparora2io.pc.cc:1034 hwallparora2io.pc.cc:1035 hwallparora2io.pc.cc:1036 hwallparora2io.pc.cc:1037 hwallparora2io.pc.cc:1038 hwallparora2io.pc.cc:1039 hwallparora2io.pc.cc:1040 hwallparora2io.pc.cc:1041 hwallparora2io.pc.cc:1042 hwallparora2io.pc.cc:1043 hwallparora2io.pc.cc:1044 hwallparora2io.pc.cc:1045 hwallparora2io.pc.cc:1046 hwallparora2io.pc.cc:1047 hwallparora2io.pc.cc:1048 hwallparora2io.pc.cc:1049 hwallparora2io.pc.cc:1050 hwallparora2io.pc.cc:1051 hwallparora2io.pc.cc:1052 hwallparora2io.pc.cc:1053 hwallparora2io.pc.cc:1054 hwallparora2io.pc.cc:1055 hwallparora2io.pc.cc:1056 hwallparora2io.pc.cc:1057 hwallparora2io.pc.cc:1058 hwallparora2io.pc.cc:1059 hwallparora2io.pc.cc:1060 hwallparora2io.pc.cc:1061 hwallparora2io.pc.cc:1062 hwallparora2io.pc.cc:1063 hwallparora2io.pc.cc:1064 hwallparora2io.pc.cc:1065 hwallparora2io.pc.cc:1066 hwallparora2io.pc.cc:1067 hwallparora2io.pc.cc:1068 hwallparora2io.pc.cc:1069 hwallparora2io.pc.cc:1070 hwallparora2io.pc.cc:1071 hwallparora2io.pc.cc:1072 hwallparora2io.pc.cc:1073 hwallparora2io.pc.cc:1074 hwallparora2io.pc.cc:1075 hwallparora2io.pc.cc:1076 hwallparora2io.pc.cc:1077 hwallparora2io.pc.cc:1078 hwallparora2io.pc.cc:1079 hwallparora2io.pc.cc:1080 hwallparora2io.pc.cc:1081 hwallparora2io.pc.cc:1082 hwallparora2io.pc.cc:1083 hwallparora2io.pc.cc:1084 hwallparora2io.pc.cc:1085 hwallparora2io.pc.cc:1086 hwallparora2io.pc.cc:1087 hwallparora2io.pc.cc:1088 hwallparora2io.pc.cc:1089 hwallparora2io.pc.cc:1090 hwallparora2io.pc.cc:1091 hwallparora2io.pc.cc:1092 hwallparora2io.pc.cc:1093 hwallparora2io.pc.cc:1094 hwallparora2io.pc.cc:1095 hwallparora2io.pc.cc:1096 hwallparora2io.pc.cc:1097 hwallparora2io.pc.cc:1098 hwallparora2io.pc.cc:1099 hwallparora2io.pc.cc:1100 hwallparora2io.pc.cc:1101 hwallparora2io.pc.cc:1102 hwallparora2io.pc.cc:1103 hwallparora2io.pc.cc:1104 hwallparora2io.pc.cc:1105 hwallparora2io.pc.cc:1106 hwallparora2io.pc.cc:1107 hwallparora2io.pc.cc:1108 hwallparora2io.pc.cc:1109 hwallparora2io.pc.cc:1110 hwallparora2io.pc.cc:1111 hwallparora2io.pc.cc:1112 hwallparora2io.pc.cc:1113 hwallparora2io.pc.cc:1114 hwallparora2io.pc.cc:1115 hwallparora2io.pc.cc:1116 hwallparora2io.pc.cc:1117 hwallparora2io.pc.cc:1118 hwallparora2io.pc.cc:1119 hwallparora2io.pc.cc:1120 hwallparora2io.pc.cc:1121 hwallparora2io.pc.cc:1122 hwallparora2io.pc.cc:1123 hwallparora2io.pc.cc:1124 hwallparora2io.pc.cc:1125 hwallparora2io.pc.cc:1126 hwallparora2io.pc.cc:1127 hwallparora2io.pc.cc:1128 hwallparora2io.pc.cc:1129 hwallparora2io.pc.cc:1130 hwallparora2io.pc.cc:1131 hwallparora2io.pc.cc:1132 hwallparora2io.pc.cc:1133 hwallparora2io.pc.cc:1134 hwallparora2io.pc.cc:1135 hwallparora2io.pc.cc:1136 hwallparora2io.pc.cc:1137 hwallparora2io.pc.cc:1138 hwallparora2io.pc.cc:1139 hwallparora2io.pc.cc:1140 hwallparora2io.pc.cc:1141 hwallparora2io.pc.cc:1142 hwallparora2io.pc.cc:1143 hwallparora2io.pc.cc:1144 hwallparora2io.pc.cc:1145 hwallparora2io.pc.cc:1146 hwallparora2io.pc.cc:1147 hwallparora2io.pc.cc:1148 hwallparora2io.pc.cc:1149 hwallparora2io.pc.cc:1150 hwallparora2io.pc.cc:1151 hwallparora2io.pc.cc:1152 hwallparora2io.pc.cc:1153 hwallparora2io.pc.cc:1154 hwallparora2io.pc.cc:1155 hwallparora2io.pc.cc:1156 hwallparora2io.pc.cc:1157 hwallparora2io.pc.cc:1158 hwallparora2io.pc.cc:1159 hwallparora2io.pc.cc:1160 hwallparora2io.pc.cc:1161 hwallparora2io.pc.cc:1162 hwallparora2io.pc.cc:1163 hwallparora2io.pc.cc:1164 hwallparora2io.pc.cc:1165 hwallparora2io.pc.cc:1166 hwallparora2io.pc.cc:1167 hwallparora2io.pc.cc:1168 hwallparora2io.pc.cc:1169 hwallparora2io.pc.cc:1170 hwallparora2io.pc.cc:1171 hwallparora2io.pc.cc:1172 hwallparora2io.pc.cc:1173 hwallparora2io.pc.cc:1174 hwallparora2io.pc.cc:1175 hwallparora2io.pc.cc:1176 hwallparora2io.pc.cc:1177 hwallparora2io.pc.cc:1178 hwallparora2io.pc.cc:1179 hwallparora2io.pc.cc:1180 hwallparora2io.pc.cc:1181 hwallparora2io.pc.cc:1182 hwallparora2io.pc.cc:1183 hwallparora2io.pc.cc:1184 hwallparora2io.pc.cc:1185 hwallparora2io.pc.cc:1186 hwallparora2io.pc.cc:1187 hwallparora2io.pc.cc:1188 hwallparora2io.pc.cc:1189 hwallparora2io.pc.cc:1190 hwallparora2io.pc.cc:1191 hwallparora2io.pc.cc:1192 hwallparora2io.pc.cc:1193 hwallparora2io.pc.cc:1194 hwallparora2io.pc.cc:1195 hwallparora2io.pc.cc:1196 hwallparora2io.pc.cc:1197 hwallparora2io.pc.cc:1198 hwallparora2io.pc.cc:1199 hwallparora2io.pc.cc:1200 hwallparora2io.pc.cc:1201 hwallparora2io.pc.cc:1202 hwallparora2io.pc.cc:1203 hwallparora2io.pc.cc:1204 hwallparora2io.pc.cc:1205 hwallparora2io.pc.cc:1206 hwallparora2io.pc.cc:1207 hwallparora2io.pc.cc:1208 hwallparora2io.pc.cc:1209 hwallparora2io.pc.cc:1210 hwallparora2io.pc.cc:1211 hwallparora2io.pc.cc:1212 hwallparora2io.pc.cc:1213 hwallparora2io.pc.cc:1214 hwallparora2io.pc.cc:1215 hwallparora2io.pc.cc:1216 hwallparora2io.pc.cc:1217 hwallparora2io.pc.cc:1218 hwallparora2io.pc.cc:1219 hwallparora2io.pc.cc:1220 hwallparora2io.pc.cc:1221 hwallparora2io.pc.cc:1222 hwallparora2io.pc.cc:1223 hwallparora2io.pc.cc:1224 hwallparora2io.pc.cc:1225 hwallparora2io.pc.cc:1226 hwallparora2io.pc.cc:1227 hwallparora2io.pc.cc:1228 hwallparora2io.pc.cc:1229 hwallparora2io.pc.cc:1230 hwallparora2io.pc.cc:1231 hwallparora2io.pc.cc:1232 hwallparora2io.pc.cc:1233 hwallparora2io.pc.cc:1234 hwallparora2io.pc.cc:1235 hwallparora2io.pc.cc:1236 hwallparora2io.pc.cc:1237 hwallparora2io.pc.cc:1238 hwallparora2io.pc.cc:1239 hwallparora2io.pc.cc:1240 hwallparora2io.pc.cc:1241 hwallparora2io.pc.cc:1242 hwallparora2io.pc.cc:1243 hwallparora2io.pc.cc:1244 hwallparora2io.pc.cc:1245 hwallparora2io.pc.cc:1246 hwallparora2io.pc.cc:1247 hwallparora2io.pc.cc:1248 hwallparora2io.pc.cc:1249 hwallparora2io.pc.cc:1250 hwallparora2io.pc.cc:1251 hwallparora2io.pc.cc:1252 hwallparora2io.pc.cc:1253 hwallparora2io.pc.cc:1254 hwallparora2io.pc.cc:1255 hwallparora2io.pc.cc:1256 hwallparora2io.pc.cc:1257 hwallparora2io.pc.cc:1258 hwallparora2io.pc.cc:1259 hwallparora2io.pc.cc:1260 hwallparora2io.pc.cc:1261 hwallparora2io.pc.cc:1262 hwallparora2io.pc.cc:1263 hwallparora2io.pc.cc:1264 hwallparora2io.pc.cc:1265 hwallparora2io.pc.cc:1266 hwallparora2io.pc.cc:1267 hwallparora2io.pc.cc:1268 hwallparora2io.pc.cc:1269 hwallparora2io.pc.cc:1270 hwallparora2io.pc.cc:1271 hwallparora2io.pc.cc:1272 hwallparora2io.pc.cc:1273 hwallparora2io.pc.cc:1274 hwallparora2io.pc.cc:1275 hwallparora2io.pc.cc:1276 hwallparora2io.pc.cc:1277 hwallparora2io.pc.cc:1278 hwallparora2io.pc.cc:1279 hwallparora2io.pc.cc:1280 hwallparora2io.pc.cc:1281 hwallparora2io.pc.cc:1282 hwallparora2io.pc.cc:1283 hwallparora2io.pc.cc:1284 hwallparora2io.pc.cc:1285 hwallparora2io.pc.cc:1286 hwallparora2io.pc.cc:1287