11 using namespace oracle::occi;
42 this->checkConnection();
44 m_readStmt = m_conn->createStatement();
45 m_readStmt->setSQL(
"select FE_CONFIG_LIN_SQ.NextVal from DUAL ");
46 ResultSet* rset = m_readStmt->executeQuery();
47 while (rset->next ()){
48 result= rset->getInt(1);
51 m_conn->terminateStatement(m_readStmt);
55 throw(std::runtime_error(
"FEConfigLinInfo::fetchNextId(): "+e.getMessage()));
61 throw(std::runtime_error)
63 this->checkConnection();
67 next_id=fetchNextId();
71 m_writeStmt = m_conn->createStatement();
72 m_writeStmt->setSQL(
"INSERT INTO "+getTable()+
" ( lin_conf_id, tag, version, iov_id) "
73 " VALUES ( :1, :2, :3 , :4) " );
75 m_writeStmt->setInt(1, next_id);
79 throw(std::runtime_error(
"FEConfigLinInfo::prepareWrite(): "+e.getMessage()));
89 for( std::map<std::string, std::string >::iterator ci=
90 my_keys_map.begin(); ci!=my_keys_map.end(); ci++ ) {
92 if(ci->first==
"VERSION") setVersion(atoi(ci->second.c_str()) );
93 if(ci->first==
"TAG") setConfigTag(ci->second);
94 if(ci->first==
"IOV_ID") setIOVId(atoi(ci->second.c_str()) );
101 throw(std::runtime_error)
103 this->checkConnection();
104 this->checkPrepare();
109 m_writeStmt->setString(2, this->getConfigTag());
110 m_writeStmt->setInt(3, this->getVersion());
111 m_writeStmt->setInt(4, this->getIOVId());
113 m_writeStmt->executeUpdate();
117 throw(std::runtime_error(
"FEConfigLinInfo::writeDB(): "+e.getMessage()));
120 if (!this->fetchID()) {
121 throw(std::runtime_error(
"FEConfigLinInfo::writeDB: Failed to write"));
129 throw(std::runtime_error)
131 this->checkConnection();
133 if(
result->getId()==0 && (
result->getConfigTag()==
"") ){
134 throw(std::runtime_error(
"FEConfigLinInfo::fetchData(): no Id defined for this FEConfigLinInfo "));
140 m_readStmt->setSQL(
"SELECT * FROM " + getTable() +
141 " where ( lin_conf_id= :1 or (tag=:2 AND version=:3 ) )" );
142 m_readStmt->setInt(1,
result->getId());
143 m_readStmt->setString(2,
result->getConfigTag());
144 m_readStmt->setInt(3,
result->getVersion());
145 ResultSet* rset = m_readStmt->executeQuery();
151 result->setId(rset->getInt(1));
152 result->setConfigTag(rset->getString(2));
153 result->setVersion(rset->getInt(3));
154 result->setIOVId(rset->getInt(4));
155 Date dbdate = rset->getDate(5);
159 throw(std::runtime_error(
"FEConfigLinInfo::fetchData(): "+e.getMessage()));
164 throw(std::runtime_error)
166 this->checkConnection();
171 m_readStmt->setSQL(
"SELECT * FROM " + getTable() +
172 " where lin_conf_id = ( select max( lin_conf_id) from "+ getTable() +
" ) " );
173 ResultSet* rset = m_readStmt->executeQuery();
177 result->setId(rset->getInt(1));
178 result->setConfigTag(rset->getString(2));
179 result->setVersion(rset->getInt(3));
180 result->setIOVId(rset->getInt(4));
181 Date dbdate = rset->getDate(5);
185 throw(std::runtime_error(
"FEConfigLinInfo::fetchData(): "+e.getMessage()));
196 this->checkConnection();
199 Statement* stmt = m_conn->createStatement();
200 stmt->setSQL(
"SELECT lin_conf_id FROM "+ getTable()+
201 " WHERE tag=:1 and version=:2 " );
203 stmt->setString(1, getConfigTag() );
204 stmt->setInt(2, getVersion() );
209 m_ID = rset->getInt(1);
213 m_conn->terminateStatement(stmt);
215 throw(std::runtime_error(
"FEConfigLinInfo::fetchID: "+e.getMessage()));
224 throw(std::runtime_error)
226 this->checkConnection();
231 Statement* stmt = m_conn->createStatement();
233 stmt->setSQL(
"SELECT * FROM fe_config_lin_info WHERE lin_conf_id = :1");
238 this->setId(rset->getInt(1));
239 this->setConfigTag(rset->getString(2));
240 this->setVersion(rset->getInt(3));
241 this->setIOVId(rset->getInt(4));
242 Date dbdate = rset->getDate(5);
243 this->setDBTime( dh.
dateToTm( dbdate ));
245 throw(std::runtime_error(
"FEConfigLinInfo::setByID: Given config_id is not in the database"));
248 m_conn->terminateStatement(stmt);
250 throw(std::runtime_error(
"FEConfigLinInfo::setByID: "+e.getMessage()));
void fetchData(FEConfigLinInfo *result)
static unsigned int getId(void)
void clear(CLHEP::HepGenMatrix &m)
Helper function: Reset all elements of a matrix to 0.
void fetchLastData(FEConfigLinInfo *result)
oracle::occi::Statement Statement
void setParameters(std::map< std::string, std::string > my_keys_map)
oracle::occi::ResultSet ResultSet
oracle::occi::SQLException SQLException
Tm dateToTm(oracle::occi::Date &date) const