aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared/Database/QueryHolder.cpp
diff options
context:
space:
mode:
authorShauren <none@none>2010-09-20 18:20:40 +0200
committerShauren <none@none>2010-09-20 18:20:40 +0200
commita5099763691f2d4d80de7db557f22b024b717cbd (patch)
tree94bb4e7851cfb978e6dcbc96b9e94899877b71c1 /src/server/shared/Database/QueryHolder.cpp
parentcd40ab6776fcc2cf90ec4220d23962b58f0bb18e (diff)
Core/DBLayer: Converted player login queries into prepared statements
Core/DBLayer: Added missing implementation for SQLQueryHolder::SetPreparedQuery --HG-- branch : trunk
Diffstat (limited to 'src/server/shared/Database/QueryHolder.cpp')
-rw-r--r--src/server/shared/Database/QueryHolder.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/server/shared/Database/QueryHolder.cpp b/src/server/shared/Database/QueryHolder.cpp
index e0411d242c3..26ccce3853c 100644
--- a/src/server/shared/Database/QueryHolder.cpp
+++ b/src/server/shared/Database/QueryHolder.cpp
@@ -64,6 +64,26 @@ bool SQLQueryHolder::SetPQuery(size_t index, const char *format, ...)
return SetQuery(index, szQuery);
}
+bool SQLQueryHolder::SetPreparedQuery(size_t index, PreparedStatement* stmt)
+{
+ if (m_queries.size() <= index)
+ {
+ sLog.outError("Query index (%zu) out of range (size: %u) for prepared statement", index, (uint32)m_queries.size());
+ return false;
+ }
+
+ /// not executed yet, just stored (it's not called a holder for nothing)
+ SQLElementData element;
+ element.type = SQL_ELEMENT_PREPARED;
+ element.element.stmt = stmt;
+
+ SQLResultSetUnion result;
+ result.presult = NULL;
+
+ m_queries[index] = SQLResultPair(element, result);
+ return true;
+}
+
QueryResult SQLQueryHolder::GetResult(size_t index)
{
// Don't call to this function if the index is of an ad-hoc statement