PL1994 Geschrieben 22. Oktober 2015 Geschrieben 22. Oktober 2015 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 Zitieren
mfk'); DROP TABLE Users;-- Geschrieben 23. Oktober 2015 Geschrieben 23. Oktober 2015 Vermutlich liegt das Problem in Country. Du speicherst die Strings doch nicht nur als Zeiger, oder? Zitieren
PL1994 Geschrieben 24. Oktober 2015 Autor Geschrieben 24. Oktober 2015 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! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.