Ich schreibe Code, der die Datenbank meiner App auf eine neue Version aktualisiert. Während des Upgrades lege ich eine Tabelle ab und erzeuge sie mit einem anderen Schema neu (einschließlich einer neuen Spalte). Wenn ich versuche, Daten aus dieser neuen Tabelle zu lesen, erstelle ich einen Cursor wie folgt:Cursor.getColumnIndex() gibt -1 für eine vorhandene Spalte zurück
Cursor cursor = database.rawQuery("SELECT * FROM " + TABLE_ALARMS, null);
Und wenn ich versuche, Daten aus der neuen Spalte zu lesen, gibt cursor.getColumnIndex (NEW_COLUMN) -1, was bedeutet, es doesn Ich existiere nicht. Dies ist nicht korrekt, da die neue Spalte im neuen Schema enthalten ist. Weiß jemand, warum das passieren würde?
Ich glaube nicht, dass ich die Datenbank in der onUpgrade() Methode schließen/öffnen kann, aber ich habe es mit dem Cursor versucht und bis jetzt schien es zu funktionieren. –
Warte ich blöd erinnerte mich das falsch Ich habe nur den Cursor aktualisiert meh xD – BAAAZINGA
Leider ist es konsistent. Manchmal funktioniert es, manchmal nicht. Wenn ich den Cursor in einer While-Schleife öffne/schließe, wird er auch nie aufgelöst. –