Benötigt man spezielle Befehle wenn man mit einem Cursor auf die Spalte mit den FOREIGN KEYS zu greifen möchte?
Wenn ich auf die Spalte mit dem FOREIGN KEY zugreifen möchte mit cursor.getLong(nummerDerKeySpalte) bekomme ich Exception "java.lang.IllegalStateException: Couldn't read row 0, col 5 from CursorWindow.......
Irgendwie scheint die Spalte gar nicht sichtbar zu sein. Ich kann zur Laufzeit mit keinem gängigen Befehl wie Cursor.getXXX(nummerDerKeySpalte) zu greifen. Ebenfalls wird sie bei Cursor.getColumnCount() nicht mitgezählt.
Ich hab die Datenbank aus dem Emulator rausgezogen und im "DB Browser for SQLite" angeschaut. Spalten sind alle vorhanden und auch die jeweiligen id Einträge der FOREIGN KEY Spalten stimmen. Also die Datenbank scheint korrekt abgespeichert zu sein nur zugreifen darauf kann ich nicht.
Ich hab die Spalte auch explizit im OnCreate String als Foreign Key Spalte deklariert mit "FOREIGN KEY(KeySpalte) REFERENCES AndereTabelle(idSpalteDieReferenziertWird)".
Ebenfalls habe ich mittelerweile in onOpen()
db.execSQL("PRAGMA foreign_keys = ON;");
und in OnConfigure
db.setForeignKeyConstraintsEnabled(true);
eingefügt aber an dem schien es auch nicht zu liegen.
Mach ich was grundsätzliches falsch beim Zugriff auf diese Spalten oder sollte der Zugriff gleich verlaufen wie auf andere Spalten?
Brauch ich spezielle Cursor oder muss ich die Datenbank speziell konfigurieren, dass ich darauf zugreifen kann?
Wäre echt froh wenn mir jemand helfen könnte. Habe schon Stunden mit Googeln und testen verbracht aber irgendwie find ich nichts brauchbares dazu.