MCPcopy Create free account
hub / github.com/SOCI/soci / commit

Method commit

src/backends/db2/session.cpp:186–207  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

184}
185
186void db2_session_backend::commit()
187{
188 if (!autocommit || in_transaction) {
189 in_transaction = false;
190 SQLRETURN cliRC = SQLEndTran(SQL_HANDLE_DBC,hDbc,SQL_COMMIT);
191 if(autocommit)
192 {
193 SQLRETURN cliRC2 = SQLSetConnectAttr(hDbc, SQL_ATTR_AUTOCOMMIT, (SQLPOINTER) SQL_AUTOCOMMIT_ON, SQL_NTS);
194 if ((cliRC == SQL_SUCCESS || cliRC == SQL_SUCCESS_WITH_INFO) &&
195 cliRC2 != SQL_SUCCESS && cliRC2 != SQL_SUCCESS_WITH_INFO)
196 {
197 std::string msg=db2_soci_error::sqlState("Setting the autocommit attribute failed", SQL_HANDLE_DBC, hDbc);
198 SQLFreeHandle(SQL_HANDLE_DBC,hDbc);
199 SQLFreeHandle(SQL_HANDLE_ENV,hEnv);
200 throw db2_soci_error(msg,cliRC);
201 }
202 }
203 if (cliRC != SQL_SUCCESS && cliRC != SQL_SUCCESS_WITH_INFO) {
204 throw db2_soci_error("Commit failed",cliRC);
205 }
206 }
207}
208
209void db2_session_backend::rollback()
210{

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected