CMS 3D CMS Logo

ODJBH4Cycle.cc
Go to the documentation of this file.
1 #include <stdexcept>
3 
5 
6 using namespace std;
7 using namespace oracle::occi;
8 
10  m_env = nullptr;
11  m_conn = nullptr;
12  m_writeStmt = nullptr;
13  m_readStmt = nullptr;
14  //
15  m_ID = 0;
16  m_jbh4_config_id = 0;
17 }
18 
20 
21 void ODJBH4Cycle::prepareWrite() noexcept(false) {
22  this->checkConnection();
23 
24  try {
25  m_writeStmt = m_conn->createStatement();
26  m_writeStmt->setSQL(
27  "INSERT INTO ECAL_JBH4_Cycle (cycle_id, jbh4_configuration_id ) "
28  "VALUES (:1, :2 )");
29  } catch (SQLException &e) {
30  throw(std::runtime_error("ODJBH4Cycle::prepareWrite(): " + e.getMessage()));
31  }
32 }
33 
34 void ODJBH4Cycle::writeDB() noexcept(false) {
35  this->checkConnection();
36  this->checkPrepare();
37 
38  try {
39  m_writeStmt->setInt(1, this->getId());
40  m_writeStmt->setInt(2, this->getJBH4ConfigurationID());
41 
42  m_writeStmt->executeUpdate();
43 
44  } catch (SQLException &e) {
45  throw(std::runtime_error("ODJBH4Cycle::writeDB: " + e.getMessage()));
46  }
47 
48  // Now get the ID
49  if (!this->fetchID()) {
50  throw(std::runtime_error("ODJBH4Cycle::writeDB: Failed to write"));
51  }
52 }
53 
54 void ODJBH4Cycle::clear() { m_jbh4_config_id = 0; }
55 
56 int ODJBH4Cycle::fetchID() noexcept(false) {
57  // Return from memory if available
58  if (m_ID) {
59  return m_ID;
60  }
61 
62  this->checkConnection();
63 
64  try {
65  Statement *stmt = m_conn->createStatement();
66  stmt->setSQL(
67  "SELECT cycle_id, jbh4_configuration_id FROM ecal_jbh4_cycle "
68  "WHERE cycle_id = :1 ");
69  stmt->setInt(1, m_ID);
70  ResultSet *rset = stmt->executeQuery();
71 
72  if (rset->next()) {
73  m_ID = rset->getInt(1);
74  m_jbh4_config_id = rset->getInt(2);
75  } else {
76  m_ID = 0;
77  }
78  m_conn->terminateStatement(stmt);
79  } catch (SQLException &e) {
80  throw(std::runtime_error("ODJBH4Cycle::fetchID: " + e.getMessage()));
81  }
82 
83  return m_ID;
84 }
85 
86 void ODJBH4Cycle::setByID(int id) noexcept(false) {
87  this->checkConnection();
88 
89  try {
90  Statement *stmt = m_conn->createStatement();
91  stmt->setSQL(
92  "SELECT cycle_id, jbh4_configuration_id FROM ecal_jbh4_cycle "
93  "WHERE cycle_id = :1 ");
94  stmt->setInt(1, id);
95  ResultSet *rset = stmt->executeQuery();
96 
97  if (rset->next()) {
98  m_ID = rset->getInt(1);
99  m_jbh4_config_id = rset->getInt(2);
100  } else {
101  m_ID = 0;
102  }
103  m_conn->terminateStatement(stmt);
104  } catch (SQLException &e) {
105  throw(std::runtime_error("ODJBH4Cycle::fetchID: " + e.getMessage()));
106  }
107 }
108 
109 void ODJBH4Cycle::fetchData(ODJBH4Cycle *result) noexcept(false) {
110  this->checkConnection();
111  result->clear();
112 
113  if (result->getId() == 0) {
114  throw(std::runtime_error("ODJBH4Config::fetchData(): no Id defined for this ODJBH4Config "));
115  }
116 
117  try {
118  m_readStmt->setSQL(
119  "SELECT jbh4_configuration_id FROM ecal_jbh4_cycle "
120  "WHERE cycle_id = :1 ");
121 
122  m_readStmt->setInt(1, result->getId());
123  ResultSet *rset = m_readStmt->executeQuery();
124 
125  rset->next();
126 
127  result->setJBH4ConfigurationID(rset->getInt(1));
128 
129  } catch (SQLException &e) {
130  throw(std::runtime_error("ODJBH4Cycle::fetchData(): " + e.getMessage()));
131  }
132 }
133 
135  try {
136  prepareWrite();
137  writeDB();
138  m_conn->commit();
139  terminateWriteStatement();
140  } catch (std::runtime_error &e) {
141  m_conn->rollback();
142  throw(e);
143  } catch (...) {
144  m_conn->rollback();
145  throw(std::runtime_error("EcalCondDBInterface::insertDataSet: Unknown exception caught"));
146  }
147 }
funct::false
false
Definition: Factorize.h:29
ODJBH4Cycle::fetchData
void fetchData(ODJBH4Cycle *result) noexcept(false)
Definition: ODJBH4Cycle.cc:109
ODJBH4Cycle::fetchID
int fetchID() noexcept(false)
Definition: ODJBH4Cycle.cc:56
IODConfig::Statement
oracle::occi::Statement Statement
Definition: IODConfig.h:21
ODJBH4Cycle.h
dtFineDelayCorr_cfi.writeDB
writeDB
Definition: dtFineDelayCorr_cfi.py:20
IODConfig::SQLException
oracle::occi::SQLException SQLException
Definition: IODConfig.h:20
ODJBH4Cycle::setByID
void setByID(int id) noexcept(false)
Definition: ODJBH4Cycle.cc:86
ODJBH4Cycle::writeDB
void writeDB() noexcept(false)
Definition: ODJBH4Cycle.cc:34
oracle::occi
Definition: ConnectionManager.h:7
ODJBH4Cycle::insertConfig
void insertConfig() noexcept(false)
Definition: ODJBH4Cycle.cc:134
ODJBH4Cycle::ODJBH4Cycle
ODJBH4Cycle()
Definition: ODJBH4Cycle.cc:9
ODJBH4Cycle::clear
void clear()
Definition: ODJBH4Cycle.cc:54
std
Definition: JetResolutionObject.h:76
ODJBH4Cycle
Definition: ODJBH4Cycle.h:9
Oracle.h
mps_fire.result
result
Definition: mps_fire.py:311
ODJBH4Cycle::~ODJBH4Cycle
~ODJBH4Cycle() override
Definition: ODJBH4Cycle.cc:19
getId
static unsigned int getId()
Definition: DQMStoreStats.h:129
ODJBH4Cycle::prepareWrite
void prepareWrite() noexcept(false) override
Definition: ODJBH4Cycle.cc:21
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37