Veröffentlicht 22. Oktober 20159 j Hallo,ich möchte ein paar Datensätze aus einer SQLITE-Datenbank in eine Liste schreiben. Das Auslesen an sich funktioniert, die Liste wird auch initialisiert. Allerdings werden die vorherigen Einträge immer wieder mit dem nächsten Datensatz überschrieben. Die Liste hat am Schluss also die richtige Länge, aber alle Einträge entsprechen dem letzten, der ausgelesen wurde.Hier der Quellcode:list<Country> countriesList; while (sqlite3_step(statements[GET_COUNTRIES]) == SQLITE_ROW) { countriesList.push_back(Country((int)sqlite3_column_int(statements[GET_COUNTRIES], 0), (char *)sqlite3_column_text(statements[GET_COUNTRIES], 1), (char *)sqlite3_column_text(statements[GET_COUNTRIES], 2), (char *)sqlite3_column_text(statements[GET_COUNTRIES], 3))); for (list<Country>::iterator i = countriesList.begin(); i != countriesList.end(); ++i) { Country c = *i; OutputDebugStringA(c.getName()); OutputDebugStringA("\n"); } } sqlite3_reset(statements[GET_COUNTRIES]);Warum klappt das nicht?GrußPL1994
23. Oktober 20159 j Vermutlich liegt das Problem in Country. Du speicherst die Strings doch nicht nur als Zeiger, oder?
24. Oktober 20159 j Autor Wäre möglich ... ja. Wenn ich "string" statt "char*" verwende, sollte es funktionieren (habe es bis jetzt noch nicht an dem richtigen Programm getestet). Danke dir!
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.