mirror of
https://github.com/ClassiCube/MCGalaxy.git
synced 2025-09-24 05:03:34 -04:00
Log to sql error log file if creating a bulk transaction command fails.
This commit is contained in:
parent
7113b0ee53
commit
8fb745c434
@ -34,6 +34,16 @@ namespace MCGalaxy.SQL {
|
||||
}
|
||||
}
|
||||
|
||||
public static BulkTransaction CreateNative() {
|
||||
try {
|
||||
if (Server.useMySQL) return new MySQLBulkTransaction(MySQL.connString);
|
||||
else return new Native.NativeBulkTransaction();
|
||||
} catch (Exception ex) {
|
||||
Server.ErrorLog(ex);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public abstract IDbCommand CreateCommand(string query);
|
||||
|
||||
public abstract IDataParameter CreateParam(string paramName, DbType type);
|
||||
@ -71,6 +81,16 @@ namespace MCGalaxy.SQL {
|
||||
return Execute(query, cmd);
|
||||
}
|
||||
|
||||
public static IDbCommand CreateCommand(string query, BulkTransaction transaction) {
|
||||
try {
|
||||
return transaction.CreateCommand(query);
|
||||
} catch (Exception e) {
|
||||
System.IO.File.AppendAllText("MySQL_error.log", DateTime.Now + " " + query + "\r\n");
|
||||
Server.ErrorLog(e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool Execute(string query, IDbCommand cmd) {
|
||||
try {
|
||||
cmd.ExecuteNonQuery();
|
||||
|
@ -452,13 +452,8 @@ namespace MCGalaxy
|
||||
|
||||
fixed (char* ptr = date) {
|
||||
ptr[4] = '-'; ptr[7] = '-'; ptr[10] = ' '; ptr[13] = ':'; ptr[16] = ':';
|
||||
if (Server.useMySQL) {
|
||||
using (BulkTransaction bulk = BulkTransaction.Create())
|
||||
using (BulkTransaction bulk = BulkTransaction.CreateNative())
|
||||
DoSaveChanges(tempCache, ptr, date, bulk);
|
||||
} else {
|
||||
using (BulkTransaction bulk = new NativeBulkTransaction())
|
||||
DoSaveChanges(tempCache, ptr, date, bulk);
|
||||
}
|
||||
}
|
||||
tempCache.Clear();
|
||||
blockCache = new List<BlockPos>();
|
||||
@ -471,7 +466,9 @@ namespace MCGalaxy
|
||||
"` (Username, TimePerformed, X, Y, Z, type, deleted) VALUES (@Name, @Time, @X, @Y, @Z, @Tile, @Del)";
|
||||
ushort x, y, z;
|
||||
|
||||
IDbCommand cmd = transaction.CreateCommand(template);
|
||||
IDbCommand cmd = BulkTransaction.CreateCommand(template, transaction);
|
||||
if (cmd == null) return false;
|
||||
|
||||
IDataParameter nameP = transaction.CreateParam("@Name", DbType.AnsiStringFixedLength); cmd.Parameters.Add(nameP);
|
||||
IDataParameter timeP = transaction.CreateParam("@Time", DbType.AnsiStringFixedLength); cmd.Parameters.Add(timeP);
|
||||
IDataParameter xP = transaction.CreateParam("@X", DbType.UInt16); cmd.Parameters.Add(xP);
|
||||
|
Loading…
x
Reference in New Issue
Block a user