diff options
author | Machiavelli <none@none> | 2010-09-19 12:16:29 +0200 |
---|---|---|
committer | Machiavelli <none@none> | 2010-09-19 12:16:29 +0200 |
commit | 0982719f5fa3266adf655dc7e1541177e40c3b93 (patch) | |
tree | 813e2983afd619dd34b3e69f9b0fc0b3ed42a2b7 /src/server/shared/Database/Transaction.cpp | |
parent | a25ef432233c7a9340179d3f694b2d240cdeafef (diff) |
Core/DBLayer:
- Declare the datatypes used to determine transaction element data (prepared statement/adhoc query string) on a generic level in SQLOperation.h
- Implement variable SQL element data for SQLQueryHolder class so it can execute both prepared statements and adhoc queries
- Make MySQLConnection::Query for adhoc queries return pointer to type instead of an autopointer, the autopointer is now applied on higher level code just like the function for querying prepared statements
--HG--
branch : trunk
Diffstat (limited to 'src/server/shared/Database/Transaction.cpp')
-rw-r--r-- | src/server/shared/Database/Transaction.cpp | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/server/shared/Database/Transaction.cpp b/src/server/shared/Database/Transaction.cpp index 693bc1f96b2..0a7fe4dab60 100644 --- a/src/server/shared/Database/Transaction.cpp +++ b/src/server/shared/Database/Transaction.cpp @@ -22,8 +22,8 @@ //- Append a raw ad-hoc query to the transaction void Transaction::Append(const char* sql) { - TransactionElementData data; - data.type = TRANSACTION_ELEMENT_RAW; + SQLElementData data; + data.type = SQL_ELEMENT_RAW; data.element.query = strdup(sql); m_queries.push(data); } @@ -42,8 +42,8 @@ void Transaction::PAppend(const char* sql, ...) //- Append a prepared statement to the transaction void Transaction::Append(PreparedStatement* stmt) { - TransactionElementData data; - data.type = TRANSACTION_ELEMENT_PREPARED; + SQLElementData data; + data.type = SQL_ELEMENT_PREPARED; data.element.stmt = stmt; m_queries.push(data); } @@ -52,13 +52,13 @@ void Transaction::Cleanup() { while (!m_queries.empty()) { - TransactionElementData data = m_queries.front(); + SQLElementData data = m_queries.front(); switch (data.type) { - case TRANSACTION_ELEMENT_PREPARED: + case SQL_ELEMENT_PREPARED: delete data.element.stmt; break; - case TRANSACTION_ELEMENT_RAW: + case SQL_ELEMENT_RAW: free((void*)(data.element.query)); break; } @@ -68,17 +68,17 @@ void Transaction::Cleanup() bool TransactionTask::Execute() { - std::queue<TransactionElementData> &queries = m_trans->m_queries; + std::queue<SQLElementData> &queries = m_trans->m_queries; if (queries.empty()) return false; m_conn->BeginTransaction(); while (!queries.empty()) { - TransactionElementData data = queries.front(); + SQLElementData data = queries.front(); switch (data.type) { - case TRANSACTION_ELEMENT_PREPARED: + case SQL_ELEMENT_PREPARED: { PreparedStatement* stmt = data.element.stmt; ASSERT(stmt); @@ -91,7 +91,7 @@ bool TransactionTask::Execute() delete data.element.stmt; } break; - case TRANSACTION_ELEMENT_RAW: + case SQL_ELEMENT_RAW: { const char* sql = data.element.query; ASSERT(sql); |