Cursor size limit in Android SQLiteDatabase
Lade ich eine db aus dem internet. Ich speichern Sie es in meinem datases Ordner und ich öffne Sie.
Innerhalb der db gibt es eine Tabelle "Anzeigen" mit 6 Feldern. 2 diese Felder sind BLOB. Wenn ich Lesen will aus dieser Tabelle... ich habe ein problem... ich habe bemerkt, dass ich beim Lesen einer Zeile mit einer blob-Feld größer als 1 mega-byte, dies bewirkt, dass eine Ausnahme... "get field-slot von Zeile 0, Spalte 0 ist fehlgeschlagen". wenn es ein wenig blob, alles ist ok... vielen Dank im Voraus 🙂
InformationsquelleAutor der Frage Sergio Andreotti | 2011-03-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es gibt ein limit von 1 MB auf den internen Ressourcen durch dynamische Dekompression; der 1 MB-Grenze scheint auch zu gelten für Cursor-blobs, aber dies scheint nicht dokumentiert zu werden überall.
In der Regel sollten Sie vermeiden die blobs in SQLite als Sie schlecht durchführen; stattdessen speichern der blob-Daten als Datei, und speichern Sie den Speicherort der Datei in die DB.
InformationsquelleAutor der Antwort Joseph Earl
Lesen eines Blobs, das ist weniger als 100KB aus einer SQLite-Datenbank ist schneller als das Lesen der gleichen aus dem Dateisystem. Aber alles, was größer als das ist das beste gehalten auf der Festplatte, mit einem Verweis in die db.
Mehr unter: http://www.sqlite.org/intern-v-extern-blob.html
InformationsquelleAutor der Antwort Frederick Nyawaya
Es ist ein 1-MB-Grenze pro Betrieb. (Ich bin nicht sicher, ob dies ist, pro Zeile oder pro Spalte im Fall von SQLite-Abfragen). Die Grenze ist wegen der SQLite-API-Interaktion mit sqlite out-of-process über die Binder/Paket-IPC-system. Die gleiche Grenze gilt für Werte in einem Bundle (Intent-extras, zum Beispiel).
Finden Sie unter: http://developer.android.com/reference/android/os/TransactionTooLargeException.html
InformationsquelleAutor der Antwort Mark Renouf
Ist die Abfrage, die Sie verwenden "auswählen", sagte blob? Können Sie es weglassen? Wenn Sie nicht können, verwenden Sie:
oder
Die erste Methode, die Sie Lesen das blob in Stücke schneiden. Das zweite ist das blob geladen, alles auf einmal.
InformationsquelleAutor der Antwort Andrew
Sieht aus wie BLOB-Unterstützung in Android ist noch nicht implementiert...
http://www.basic4ppc.com/forum/basic4android-updates-questions/6648-support-sqlite-blob.html
Welche Daten in den BLOB-Feldern? Ich würde vermuten, die Bilder.
Ich würde empfehlen NICHT die Verwendung von BLOBs. Die Datei system ist eine viel bessere Wahl für binäre Daten.
Können Sie erklären, ein wenig mehr über das, was Sie erreichen möchten mit der Datenbank?
InformationsquelleAutor der Antwort Jonathan