Rufen Sie einen großen Blob aus der Android SQLite-Datenbank ab
Ich habe Teile von Binärdaten (Protobufs) in der SQLite-Datenbank einer Android-App gespeichert, ohne zu bemerken, dass dies bei Android der Fall istCursor
kann nur maximal 1 MB Daten speichern. Ich weiß jetzt, dass ich diese binären Blobs in Dateien hätte speichern und nur auf die Dateien in den SQLite-Datenbankeinträgen verweisen sollen.
Ich muss die Datenbank aktualisieren (die App wird seit einiger Zeit verwendet), um diese Binärblöcke in Dateien zu verschieben. Das Problem ist, dass die Daten einiger Benutzer möglicherweise bereits die 1-MB-Grenze überschritten haben und ich sie nicht aus der Datenbank abrufen kann (Zugriff auf die resultierenden Daten)Cursor
für eine einzelne Zeile, die einen großen Blob enthält, wirft einIllegalStateException: Couldn't read row 0, col 0 from CursorWindow. Make sure the Cursor is initialize before accessing data from it
).
Wie rufe ich die binären Blobs ab, die größer als 1 MB sind?Cursor
Limit, das in der SQLite-Datenbank gespeichert wurden?