Gibt es eine Möglichkeit, den Datentyp einer Spalte in einem Cursor in Android zu identifizieren? Das Cursor-Objekt verfügt über eine Reihe von Methoden, um den Spaltennamen, den Spaltenwert zu erhalten.
Ich möchte den SQLite-Datentyp der Spalte (TEXT, INTEGER) usw. herausfinden ...
Ich schreibe eine generische Funktion, um einen Cursor zu analysieren und Operationen auszuführen. Ich werde nur eine SQL-Zeichenfolge als Argument für die Funktion erhalten.
In der SQLite-Dokumentation ( Ссылка ) haben Spalten in SQLite keinen Datentyp - die Werte in diesen Spalten mach das.
Jede Spalte in einer SQLite-Datenbank der Version 3, mit Ausnahme einer INTEGER PRIMARY KEY-Spalte, kann zum Speichern eines Werts einer beliebigen Speicherklasse verwendet werden.
Wenn Sie die API-Stufe 11 oder höher verwenden, unterstützt der Cursor getType()
(siehe Ссылка ).
Wenn Sie eine frühere API-Ebene verwenden und wissen, dass alle Ergebnisse eines bestimmten Cursors aus derselben Tabelle stammen, können Sie etwas wie (ungested) tun:
%Vor%Aber das wird (ich erwarte) scheitern, wenn der übergebene Cursor (zum Beispiel) das Ergebnis eines Aufrufs db.rawQuery () war, der zwei oder mehr Tabellen verband.
Sie sollten Metadaten von sqlite Database verwenden:
Sie erhalten dieses Element mit getMetaData () in einem ResultSet ().
Es ist also nicht die übliche Art, eine SQLite-Datenbank in Android zu verwenden, sondern die übliche JDBC-Methode:
Grüße, Stéphane