void SqlQuery::Execute(SqlConnection *conn) { if(!m_callback || !m_queue) return; LOCK_DB_CONN(conn); /// execute the query and store the result in the callback m_callback->SetResult(conn->Query(m_sql)); /// add the callback to the sql result queue of the thread it originated from m_queue->add(m_callback); }
void SqlQueryHolderEx::Execute(SqlConnection *conn) { if(!m_holder || !m_callback || !m_queue) return; LOCK_DB_CONN(conn); /// we can do this, we are friends std::vector<SqlQueryHolder::SqlResultPair> &queries = m_holder->m_queries; for(size_t i = 0; i < queries.size(); i++) { /// execute all queries in the holder and pass the results char const *sql = queries[i].first; if(sql) m_holder->SetResult(i, conn->Query(sql)); } /// sync with the caller thread m_queue->add(m_callback); }
bool SqlTransaction::Execute(SqlConnection *conn) { if (m_queue.empty()) return true; LOCK_DB_CONN(conn); conn->BeginTransaction(); const int nItems = m_queue.size(); for (int i = 0; i < nItems; ++i) { SqlOperation * pStmt = m_queue[i]; if(!pStmt->Execute(conn)) { conn->RollbackTransaction(); return false; } } return conn->CommitTransaction(); }
void SqlTransaction::Execute(SqlConnection *conn) { if(m_queue.empty()) return; LOCK_DB_CONN(conn); conn->BeginTransaction(); const int nItems = m_queue.size(); for (int i = 0; i < nItems; ++i) { const char *sql = m_queue[i]; if(!conn->Execute(sql)) { conn->RollbackTransaction(); return; } } conn->CommitTransaction(); }
bool SqlPreparedRequest::Execute(SqlConnection* conn) { LOCK_DB_CONN(conn); return conn->ExecuteStmt(m_nIndex, *m_param); }
bool SqlPlainRequest::Execute(SqlConnection* conn) { /// just do it LOCK_DB_CONN(conn); return conn->Execute(m_sql); }
void SqlStatement::Execute(SqlConnection *conn) { /// just do it LOCK_DB_CONN(conn); conn->Execute(m_sql); }