8 using namespace oracle::occi;
33 throw(std::runtime_error)
35 this->checkConnection();
38 m_writeStmt = m_conn->createStatement();
39 m_writeStmt->setSQL(
"INSERT INTO "+getTable()+
" (rec_id, sm_id, fed_id, tt_id, cry_id, wei0, wei1, wei2, wei3, wei4, wei5 ) "
40 "VALUES (:1, :2, :3, :4, :5, :6, :7, :8 , :9, :10, :11 )");
42 throw(std::runtime_error(
"ODWeightsDat::prepareWrite(): "+e.getMessage()));
49 throw(std::runtime_error)
51 this->checkConnection();
54 m_writeStmt->setInt(1, item->getId());
55 m_writeStmt->setInt(2, item->getSMId());
56 m_writeStmt->setInt(3, item->getFedId() );
57 m_writeStmt->setInt(4, item->getTTId() );
58 m_writeStmt->setInt(5, item->getCrystalId() );
60 m_writeStmt->setFloat(6, item->getWeight0() );
61 m_writeStmt->setFloat(7, item->getWeight1() );
62 m_writeStmt->setFloat(8, item->getWeight2() );
63 m_writeStmt->setFloat(9, item->getWeight3() );
64 m_writeStmt->setFloat(10, item->getWeight4() );
65 m_writeStmt->setFloat(11, item->getWeight5() );
67 m_writeStmt->executeUpdate();
69 throw(std::runtime_error(
"ODWeightsDat::writeDB(): "+e.getMessage()));
76 throw(std::runtime_error)
78 this->checkConnection();
80 iov->setConnection(m_env, m_conn);
81 int iovID =
iov->fetchID();
88 m_readStmt->setSQL(
"SELECT * FROM " + getTable() +
" WHERE rec_id = :rec_id order by sm_id, fed_id, tt_id, cry_id");
89 m_readStmt->setInt(1, iovID);
90 ResultSet* rset = m_readStmt->executeQuery();
113 throw(std::runtime_error(
"ODWeightsDat::fetchData(): "+e.getMessage()));
120 throw(std::runtime_error)
122 this->checkConnection();
124 int iovID =
iov->fetchID();
125 if (!iovID) {
throw(std::runtime_error(
"ODDelays::writeArrayDB: ODFEDelaysInfo not in DB")); }
128 int nrows=
data.size();
129 int* ids=
new int[nrows];
130 int* xx=
new int[nrows];
131 int* yy=
new int[nrows];
132 int* zz=
new int[nrows];
133 int* st=
new int[nrows];
134 float* xx1=
new float[nrows];
135 float* yy1=
new float[nrows];
136 float* zz1=
new float[nrows];
137 float* xx2=
new float[nrows];
138 float* yy2=
new float[nrows];
139 float* zz2=
new float[nrows];
142 ub2* ids_len=
new ub2[nrows];
143 ub2* x_len=
new ub2[nrows];
144 ub2* y_len=
new ub2[nrows];
145 ub2* z_len=
new ub2[nrows];
146 ub2* st_len=
new ub2[nrows];
147 ub2* x1_len=
new ub2[nrows];
148 ub2* y1_len=
new ub2[nrows];
149 ub2* z1_len=
new ub2[nrows];
150 ub2* x2_len=
new ub2[nrows];
151 ub2* y2_len=
new ub2[nrows];
152 ub2* z2_len=
new ub2[nrows];
156 int n_data= (int)
data.size();
188 m_writeStmt->setDataBuffer(1, (dvoid*)ids, OCCIINT,
sizeof(ids[0]),ids_len);
189 m_writeStmt->setDataBuffer(2, (dvoid*)xx, OCCIINT ,
sizeof(xx[0]), x_len );
190 m_writeStmt->setDataBuffer(3, (dvoid*)yy, OCCIINT ,
sizeof(yy[0]), y_len );
191 m_writeStmt->setDataBuffer(4, (dvoid*)zz, OCCIINT ,
sizeof(zz[0]), z_len );
192 m_writeStmt->setDataBuffer(5, (dvoid*)st, OCCIINT ,
sizeof(st[0]), st_len );
193 m_writeStmt->setDataBuffer(6, (dvoid*)xx1, OCCIFLOAT ,
sizeof(xx1[0]), x1_len );
194 m_writeStmt->setDataBuffer(7, (dvoid*)yy1, OCCIFLOAT ,
sizeof(yy1[0]), y1_len );
195 m_writeStmt->setDataBuffer(8, (dvoid*)zz1, OCCIFLOAT ,
sizeof(zz1[0]), z1_len );
196 m_writeStmt->setDataBuffer(9, (dvoid*)xx2, OCCIFLOAT ,
sizeof(xx2[0]), x2_len );
197 m_writeStmt->setDataBuffer(10, (dvoid*)yy2, OCCIFLOAT ,
sizeof(yy2[0]), y2_len );
198 m_writeStmt->setDataBuffer(11, (dvoid*)zz2, OCCIFLOAT ,
sizeof(zz2[0]), z2_len );
201 m_writeStmt->executeArrayUpdate(nrows);
228 throw(std::runtime_error(
"ODWeightsDat::writeArrayDB(): "+e.getMessage()));
void writeDB(const ODWeightsDat *item, ODFEWeightsInfo *iov)
void fetchData(std::vector< ODWeightsDat > *fillMap, ODFEWeightsInfo *iov)
void setCrystalId(int dac)
oracle::occi::ResultSet ResultSet
oracle::occi::SQLException SQLException
void writeArrayDB(const std::vector< ODWeightsDat > data, ODFEWeightsInfo *iov)