Hallo Community,
ich hoffe, dass sich jemand mit der Materie MySQL auskennt und mir bei folgendem Problem helfen kann.
Ich habe die Version R39-3 und bei mir wartet mysql_close(db); nicht, bis meine letzte mysql_tquery()
erfolgreich abgeschlossen wurde.
Ich weiß, dass es mal einen Parameter bool:wait in mysql_close gab in einer vergangenen Version, allerdings wurde der entfernt.
Anscheinend wartet mysql_close jetzt automatisch darauf, dem ist bei mir aber nicht so.
Zum Test habe ich mysql_close mal auskommentiert und siehe da, jetzt werden die Queries (die sich übrigens im OnGameModeExit-Callback befinden),
abgeschlossen. Allerdings finde ich diese Lösung etwas unelegant und auf nicht-threaded Queries möchte ich auch nicht umsteigen, ganz zu schweigen von einer anderen mysql-Version.
Hier noch der Code:
public OnGameModeExit() {
for(new i; i<sizeof(interior_data); i++) {
new query[512];
new
Float:x = interior_data[i][interior_pos_int][0],
Float:y = interior_data[i][interior_pos_int][1],
Float:z = interior_data[i][interior_pos_int][2],
Float:r = interior_data[i][interior_pos_int][3],
intid = interior_data[i][interior_intid_int],
locked = interior_data[i][interior_locked],
construction = interior_data[i][interior_construction],
accepted = interior_data[i][interior_accepted],
index = interior_data[i][interior_id]
;
// Ich zwischenspeichere die ganzen Werte, weil sonst die Formatierungszeile zu lang werden würde
if(x == 0 && y == 0 && z == 0) break;
mysql_format(db, query, sizeof(query), "UPDATE `interiors` SET `pos_int_x`='%f', `pos_int_y`='%f', `pos_int_z`='%f', `pos_int_r`='%f', `intid_int`='%i', `locked`='%i', `construction`='%i', `accepted`='%i', `label`='%s' WHERE `id`='%i'", x, y, z, r, intid, locked, construction, accepted, interior_data[i][interior_label], index);
mysql_tquery(db, query);
}
//mysql_close(db);
}