PreparedQueryResult SQLQueryHolder::GetPreparedResult(size_t index) { // Don't call to this function if the index is of a prepared statement if (index < m_queries.size()) { PreparedResultSet* result = m_queries[index].second.presult; if (!result || !result->GetRowCount()) return PreparedQueryResult(NULL); return PreparedQueryResult(result); } else return PreparedQueryResult(NULL); }
bool PreparedStatementTask::Execute() { if (m_has_result) { PreparedResultSet* result = m_conn->Query(m_stmt); if (!result || !result->GetRowCount()) { m_result.set(PreparedQueryResult(NULL)); return false; } m_result.set(PreparedQueryResult(result)); return true; } return m_conn->Execute(m_stmt); }
PreparedQueryResult DatabaseWorkerPool<T>::Query(PreparedStatement* stmt) { auto connection = GetFreeConnection(); PreparedResultSet* ret = connection->Query(stmt); connection->Unlock(); //! Delete proxy-class. Not needed anymore delete stmt; if (!ret || !ret->GetRowCount()) { delete ret; return PreparedQueryResult(NULL); } return PreparedQueryResult(ret); }