Beitrag von Trafico ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: kann close ().
Wie lautet der Query?
Laut der Meldung hast du kein cache am laufen
jedoch erstellt er sie jetzt nicht..
Kannst du den Code nochmal leserlich posten, und einen Screenshot der Daten aus der MySQL Tabelle "ATMs"?
new varb[2240];
kannst du zu
new varb[32];
ändern.
Länger wird wohl kein Wert sein.
einen Screenshot der Daten aus der MySQL Tabelle "ATMs"?
^ Das wäre noch gut.
Die Werte sind viel zu groß, das ist irgendwo im Niemandsland.
Lösche die ganze Tabelle und erstelle neue ATMs.
Außerdem:
format(query, sizeof(query), "CREATE TABLE IF NOT EXISTS `ATMs` (`ID` int(11) NOT NuLL AUTO_INCREMENT, `X` float(0), `Y` float(0), `Z` float(0), `A` float(0), PRIMARY KEY (`ID`))");
zu:
format(query, sizeof(query), "CREATE TABLE IF NOT EXISTS `ATMs` (`ID` int(11) NOT NuLL AUTO_INCREMENT, `X` float(2), `Y` float(2), `Z` float(2), `A` float(2), PRIMARY KEY (`ID`))");
Die Werte in der Tabelle müssen zwischen +/-3000 sein.
meinst du damit jetzt denn string/query ?
Den sollst du wie beschrieben anpassen, ja.
Außerdem davor die Tabelle aus der Datenbank löschen.
Dann neu erzeugen lassen und neue ATMs erstellen. Deren XYZA müssen zwischen +/-3000 liegen.
ich hatte query immer auf 2048 gehabt also 3000 draus machen
datenbank habe ich gelöscht er hat sie neu erstellt teste grade das laden ob es jetzt geht warnings habe ich keine mehr in der mysql log
//edit
iwas kann doch auch hier nicht stimmen oder
forward LoadATMS();
public LoadATMS()
{
new varb[32],rows,fields;
cache_get_data(rows,fields);
if(rows)
{
for(new i = 0; i < MAX_ATMS; i++)
{
cache_get_field_content(i, "ID",varb); ATMInfo[i][ID] = strval(varb);
cache_get_field_content(i, "X",varb); ATMInfo[i][aX] = floatstr(varb);
cache_get_field_content(i, "Y",varb); ATMInfo[i][aY] = floatstr(varb);
cache_get_field_content(i, "Z",varb); ATMInfo[i][aZ] = floatstr(varb);
cache_get_field_content(i, "A",varb); ATMInfo[i][aAngle] = floatstr(varb);
ATMInfo[i][aerstellt] = true;
ATMInfo[i][atmobject] = CreateDynamicObject(2942, ATMInfo[i][aX], ATMInfo[i][aY], ATMInfo[i][aZ]-0.5, 0, 0, ATMInfo[i][aAngle]);
}
}
}
ich hatte query immer auf 2048 gehabt also 3000 draus machen
Nein.
new query[256];
reicht da völlig.
Das Query hat doch keine 2048 Zeichen.
Mit +/-3000 sind die Koordinaten der ATMs gemeint (X, Y, Z, A).
for(new i = 0; i < MAX_ATMS; i++)
zu:
for(new i = 0; i < rows; i++)
geht leider auch nicht.. es wird nix geladen
[14:35:33 12/28/16] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('74') (Query: "SELECT * FROM ATMs")
Poste bitte deinen aktuellen Code nochmal und erneut einen Screenshot der Tabelle mit den ATM-Daten.
ich habs aufgeben keine lust mehr ist rotze mit r39
Du bist ja sehr leidenschaftlich bei der Sache dabei...
An R39 liegt das sicher nicht.
Doch bei der R41 geht alles
Warum nimmst du die dann nicht? Die ist ohnehin neuer und daher zu empfehlen.
weil ich alles umschreiben müsste.. naja aber drüber nachgedacht habe ich auch schon
Gut, zwei Möglichkeiten:
1. Wir finden den Fehler im Code, damit du die R39 weiter nutzen kannst.
2. Du nutzt die R41.
Liegt bei dir.