BlueG MySQL R39 | mysql_close(); wartet nicht auf Querrys

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo,
    ich habe momentan ein riesen Problem bei meinen Querrys wenn ich diese nämlich speichere bei


    public OnGameModeExit()
    {
    for(new i; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && pInfo[i][Login])
    {
    mysql_PlayerAccountSave(i);
    }
    }
    print(" [SERVER] Spieler wurden gespeichert...");
    mysql_BankAccountsSave();
    mysql_AtmSave();
    mysql_close(MySQLHandle);
    return 1;
    }


    werden bei


    mysql_BankAccountsSave();
    mysql_AtmSave();


    die Querrys zwar erstellt aber nicht mehr abgeschickt.
    So speichere ich die Daten:


    function mysql_AtmSave()
    {
    new query[235];
    for(new i; i < MAX_ATM; i++)
    {
    if(atmInfo[i][Durability] > 1) {
    format(query, sizeof(query), "UPDATE `db_atm` SET `CheckTime` = '%d', `RobCount` = '%d', `Money` = '%d', `Durability` = '%d', `PosX` = '%0.4f', `PosY` = '%0.4f', `PosZ` = '%0.4f', `PosZA` = '%0.4f' WHERE `id` = '%d'", \
    atmInfo[i][CheckTime], atmInfo[i][RobCount], atmInfo[i][Money], atmInfo[i][Durability], atmInfo[i][atmPosX], atmInfo[i][atmPosY], atmInfo[i][atmPosZ], atmInfo[i][atmPosZA], atmInfo[i][id]);
    mysql_tquery(MySQLHandle, query, "", "", "");
    printf("%s", query);
    }
    }
    print(" [SERVER] Bankautomaten wurden gespeichert...");
    }


    Hier der Debug:


    [23:03:56] [DEBUG] mysql_format - connection: 1, len: 480, format: "%s%s, `Overdraw` = '%d', `Blocked` = '%d', `Deleteable` = '%d' WHERE `Number` = '%d'"
    [23:03:56] [DEBUG] mysql_tquery - connection: 1, query: "UPDATE `db_bank` SET `Owner` = '_BLU', `Owner2` = 'none', `Date`", callback: "(null)", format: "(null)"
    [23:03:56] [DEBUG] mysql_format - connection: 1, len: 480, format: "%s%s, `Overdraw` = '%d', `Blocked` = '%d', `Deleteable` = '%d' WHERE `Number` = '%d'"
    [23:03:56] [DEBUG] mysql_tquery - connection: 1, query: "UPDATE `db_bank` SET `Owner` = 'Sammy_Schleef', `Owner2` = 'none", callback: "(null)", format: "(null)"
    [23:03:56] [DEBUG] mysql_tquery - connection: 1, query: "UPDATE `db_atm` SET (`CheckTime`, `Money`, `Durability`, `PosX`,", callback: "(null)", format: "(null)"
    [23:03:56] [DEBUG] mysql_close - connection: 1
    [23:03:56] [DEBUG] CMySQLConnection::Disconnect - connection was closed
    [23:03:56] [DEBUG] CMySQLConnection::Disconnect - connection was closed


    mfg tdXkiller

    2 Mal editiert, zuletzt von tdXkiller () aus folgendem Grund: Titel

  • Noch vor kurzer Zeit gab es einen wait Parameter bei "mysql_close", den gibt es anscheinend in R39 nicht mehr.


    Als Lösung bleibt dir dann nur das du das ganze versuchst vor OnGameModeExit zu speichern oder du versuchst den Server bei OnGameModeExit aufzuhalten bis die Querys ausgeführt worden sind. Bin mir aber bei punkto aufhalten nicht sicher wie lange der Server das mit sich machen lässt.

  • Funktionieren tut es , jedoch wird dir der Server abschmieren bei einem Serverrestart es sei den dieser Bug wurde bereits behoben.


    Ich hab diese Funktion noch nie verwendet und hatte bisher keine Probleme.
    Aber ich "Restarte" den Server auch nicht. Stoppen und neu starten ist immer die beste Methode. (Sowohl für Variablen als auch evtl. in diesem Fall MySQL ;) )