Die SQLite C-Bibliothek verfügt über eine Methode sqlite3_column_decltype()
. Aber ich kann keinen Ort finden, wo die Android SQLite API diese Methode verfügbar macht. Gibt es eine Möglichkeit, den deklarierten Typ einer Spalte ohne Ausführen von SQL zu erhalten (d. H. Kann ich die Verwendung von PRAGMA table_info
vermeiden)?Erhalten Sie die Affinität einer SQLite-Spalte unter Android
Ich hätte AbstractWindowedCursor.isBlob()
verwenden können, aber es sagt, dass es auch true zurückgibt, wenn das Feld NULL ist. Ich brauche etwas, das mir einen Wert garantiert, der dem angegebenen Typ der Spalte entspricht.
Dies scheint Ihnen den Typ des Werts und nicht den Typ der Spalte zu geben. – dan04
Ja, ich habe auch angenommen, dass es sich um den Typ des Wertes handelt. Siehe meine [verwandte Frage] (http://stackoverflow.com/questions/4676056/in-android-is-abstractwindowedcursor-isblob-guaranteed-to-be-correct). –
@Neil: Ich habe deine andere Frage gesehen, nachdem ich meine Antwort gepostet habe. (Ich verpasse auch irgendwie Ihren Hinweis auf 'AbstractWindowedCursor.isBlob'; tut mir leid.) Für was es wert ist, ging ich mit dem SQLite-Fluss und verwende Strings für jede Spalte auf der SQLite-Ebene, auch wenn der Datentyp Double, Long ist usw. Aber ich verwende keine Blobs, und ich kann sehen, wie das die Sache verkomplizieren würde. –