Make PreparedStatements static for each database.

This commit is contained in:
hondacrx
2023-02-04 20:55:14 -05:00
parent e0e20b6b1c
commit 149fadccab
90 changed files with 922 additions and 923 deletions
+3 -4
View File
@@ -80,13 +80,12 @@ namespace Framework.Database
public abstract class MySqlBase<T>
{
Dictionary<T, string> _preparedQueries = new();
ProducerConsumerQueue<ISqlOperation> _queue = new();
static Dictionary<T, string> _preparedQueries = new();
ProducerConsumerQueue<ISqlOperation> _queue = new();
MySqlConnectionInfo _connectionInfo;
DatabaseUpdater<T> _updater;
DatabaseWorker<T> _worker;
DBVersion version;
public MySqlErrorCode Initialize(MySqlConnectionInfo connectionInfo)
@@ -225,7 +224,7 @@ namespace Framework.Database
_preparedQueries[statement] = sb.ToString();
}
public PreparedStatement GetPreparedStatement(T statement)
public static PreparedStatement GetPreparedStatement(T statement)
{
return new PreparedStatement(_preparedQueries[statement]);
}
+1 -1
View File
@@ -124,7 +124,7 @@ class DBAppender : Appender
if (!enabled || message.type == LogFilter.Sql)
return;
PreparedStatement stmt = DB.Login.GetPreparedStatement(LoginStatements.INS_LOG);
PreparedStatement stmt = LoginDatabase.GetPreparedStatement(LoginStatements.INS_LOG);
stmt.AddValue(0, Time.DateTimeToUnixTime(message.mtime));
stmt.AddValue(1, realmId);
stmt.AddValue(2, message.type.ToString());
+2 -2
View File
@@ -76,7 +76,7 @@ public class RealmManager : Singleton<RealmManager>
void UpdateRealms(object source, ElapsedEventArgs e)
{
PreparedStatement stmt = DB.Login.GetPreparedStatement(LoginStatements.SEL_REALMLIST);
PreparedStatement stmt = LoginDatabase.GetPreparedStatement(LoginStatements.SEL_REALMLIST);
SQLResult result = DB.Login.Query(stmt);
Dictionary<RealmId, string> existingRealms = new();
foreach (var p in _realms)
@@ -280,7 +280,7 @@ public class RealmManager : Singleton<RealmManager>
byte[] serverSecret = new byte[0].GenerateRandomKey(32);
byte[] keyData = clientSecret.ToArray().Combine(serverSecret);
PreparedStatement stmt = DB.Login.GetPreparedStatement(LoginStatements.UPD_BNET_GAME_ACCOUNT_LOGIN_INFO);
PreparedStatement stmt = LoginDatabase.GetPreparedStatement(LoginStatements.UPD_BNET_GAME_ACCOUNT_LOGIN_INFO);
stmt.AddValue(0, keyData);
stmt.AddValue(1, clientAddress.ToString());
stmt.AddValue(2, (byte)locale);