#ifdef _SQL_TRANSACTION bool MySQLDatabase::StartTransaction() { const char* QueryString = "BEGIN"; if(mQueryThread == 0) { // No query thread. // Assume we're dealing with a normal query. mSearchMutex.acquire(); uint32 Connection = GetConnection(); mSearchMutex.release(); strcpy(QueryBuffer[Connection], QueryString); bool Result = SendQuery(Connection, QueryBuffer[Connection], false); InUseMarkers[Connection].release(); return Result; } DelayedQueryBufferMutex.acquire(); strcpy(QueryBuffer[Connection], QueryString); mQueryThread->AddQuery(DelayedQueryBuffer); DelayedQueryBufferMutex.release(); return true; } bool MySQLDatabase::EndTransaction() { const char* QueryString = "COMMIT"; if(mQueryThread == 0) { // No query thread. // Assume we're dealing with a normal query. mSearchMutex.acquire(); uint32 Connection = GetConnection(); mSearchMutex.release(); strcpy(QueryBuffer[Connection], QueryString); bool Result = SendQuery(Connection, QueryBuffer[Connection], false); InUseMarkers[Connection].release(); return Result; } DelayedQueryBufferMutex.acquire(); strcpy(QueryBuffer[Connection], QueryString); mQueryThread->AddQuery(DelayedQueryBuffer); DelayedQueryBufferMutex.release(); return true; } #endif //_SQL_TRANSACTION