Skip to content

Commit 21d61ff

Browse files
committed
Update: MaxCharacterUid, MaxAccountUid
1 parent 50296ba commit 21d61ff

File tree

5 files changed

+47
-14
lines changed

5 files changed

+47
-14
lines changed

ArcheAge/ArcheAge/Holders/AccountHolder.cs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,24 @@ public static uint MaxAccountUid()
4343
try
4444
{
4545
conn.Open();
46-
var command = new MySqlCommand("SELECT max( accountid ) FROM `accounts`", conn);
47-
uid = (uint)command.ExecuteScalar();
46+
var command = new MySqlCommand("SELECT `accountid` FROM `accounts`", conn);
47+
var reader = command.ExecuteReader();
48+
if (!reader.Read()) { return uid; }
49+
do
50+
{
51+
var account = new Account();
52+
account.AccountId = reader.GetUInt32("accountid");
53+
if (uid < account.AccountId)
54+
{
55+
uid = account.AccountId;
56+
}
57+
} while (reader.Read());
4858
command.Dispose();
59+
reader.Close();
4960
}
5061
catch (Exception ex)
5162
{
52-
Logger.Trace("Error: characters {0}", ex.Message);
63+
Logger.Trace("Error: {0}", ex.Message);
5364
}
5465
finally
5566
{

ArcheAge/ArcheAge/Holders/CharacterHolder.cs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,24 @@ public static uint MaxCharacterUid()
5656
try
5757
{
5858
conn.Open();
59-
var command = new MySqlCommand("SELECT max( characterid ) FROM `character_records`", conn);
60-
uid = (uint)command.ExecuteScalar();
59+
var command = new MySqlCommand("SELECT `characterid` FROM `character_records`", conn);
60+
var reader = command.ExecuteReader();
61+
if (!reader.Read()) { return uid; }
62+
do
63+
{
64+
var character = new Character();
65+
character.CharacterId = reader.GetUInt32("characterid");
66+
if (uid < character.CharacterId)
67+
{
68+
uid = character.CharacterId;
69+
}
70+
} while (reader.Read());
6171
command.Dispose();
72+
reader.Close();
6273
}
6374
catch (Exception ex)
6475
{
65-
Logger.Trace("Error: characters {0}", ex.Message);
76+
Logger.Trace("Error: {0}", ex.Message);
6677
}
6778
finally
6879
{

ArcheAgeLogin/ArcheAge/Database/LoginDb.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public void RunUpdate(string updateFile)
4040
// Run update
4141
using (var cmd = new MySqlCommand(File.ReadAllText(Path.Combine("sql", updateFile)), conn))
4242
{
43-
Logger.Trace("We are waiting for a long download of large SQL files!\nIt is necessary to wait for loading of SQL and only then to start GameServer!\n Additional: Set parameter max_allowed_packet=16M in c:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini");
43+
Logger.Trace("We are waiting for a long download of large SQL files!\nIt is necessary to wait for loading of SQL and only then to start GameServer!\nAdditional: Set parameter max_allowed_packet=16M in c:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini");
4444
cmd.CommandTimeout = 3600; //ждем долгой загрузки больших SQL файлов. Обычно, это значение 30 секунд.
4545
cmd.ExecuteNonQuery();
4646
}

ArcheAgeLogin/ArcheAge/Holders/AccountHolder.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,18 +48,18 @@ public static uint MaxAccountUid()
4848
try
4949
{
5050
conn.Open();
51-
var command = new MySqlCommand("SELECT * FROM `accounts`", conn);
51+
var command = new MySqlCommand("SELECT `accountid` FROM `accounts`", conn);
5252
var reader = command.ExecuteReader();
53-
while (reader.Read())
53+
if (!reader.Read()) { return uid; }
54+
do
5455
{
5556
var account = new Account();
5657
account.AccountId = reader.GetUInt32("accountid");
5758
if (uid < account.AccountId)
5859
{
5960
uid = account.AccountId;
6061
}
61-
}
62-
62+
} while (reader.Read());
6363
command.Dispose();
6464
reader.Close();
6565
}

ArcheAgeLogin/ArcheAge/Holders/CharacterHolder.cs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,24 @@ public static uint MaxCharacterUid()
4848
try
4949
{
5050
conn.Open();
51-
var command = new MySqlCommand("SELECT max( characterid ) FROM `character_records`", conn);
52-
uid = (uint)command.ExecuteScalar();
51+
var command = new MySqlCommand("SELECT `characterid` FROM `character_records`", conn);
52+
var reader = command.ExecuteReader();
53+
if (!reader.Read()) { return uid; }
54+
do
55+
{
56+
var character = new Character();
57+
character.CharacterId = reader.GetUInt32("characterid");
58+
if (uid < character.CharacterId)
59+
{
60+
uid = character.CharacterId;
61+
}
62+
} while (reader.Read());
5363
command.Dispose();
64+
reader.Close();
5465
}
5566
catch (Exception ex)
5667
{
57-
Logger.Trace("Error: characters {0}", ex.Message);
68+
Logger.Trace("Error: {0}", ex.Message);
5869
}
5970
finally
6071
{

0 commit comments

Comments
 (0)