Android-gewusst wie-Abfrage riesige Datenbank in android (cursor-Größe ist beschränkt auf 1 MB)
Dem ich arbeite, entwickeln eine Anwendung, die Abfragen in einer Zeit, eine Datenbank mit über 4k Zeilen, und jede Zeile hat 90 Felder (Strings). Das problem ist, dass wenn ich select * from Datenbank, mein cursor bekommt wirklich groß (über 4 MB). Und der Mauszeiger in android ist auf 1MB begrenzt.
Wie kann ich dieses Problem lösen, oder was ist die eleganteste Methode zu umgehen?
Es ist möglich, split-Datenbank in kleinere Stücke, und Fragen Sie sich?
Dank,
Arkde
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich einen Weg gefunden, damit umzugehen, und ich möchte teilen mit allen, die es brauchen.
Die Idee dabei ist, teilen Sie Ihre Daten, so können Sie den cursor verwenden, wie es verwendet werden soll. Es arbeitet unter 2 s bei 5k Zeilen, wenn Sie indizierte Tabelle.
Dank,
Arkde
Sowie eine Regel, die Sie nie tun, wählen Sie *. Für einen start, die jede Zeile hat eine eindeutige Kennung, die Ihre Benutzer möchten, wählen Sie nur bestimmte Zeilen und Spalten - also das, was Sie sehen können auf einem android-Bildschirm. Ohne dabei unhöflich zu sein dies ist eine ziemlich grundlegende Frage. Sie liefern nur die Spalten und Zeilen, die Sie möchten, die Anzeige für das Display auf der Handy - andernfalls verbrauchen Sie unnecssary Lebensdauer der Batterie übertragen und werden nie diaplayed Daten. der standard-Ansatz ist, verwendet parametrierten und gespeicherten Prozeduren. Google parametriert gespeicherte Prozeduren und ein wenig zu Lesen - by - you cant update einer Tabelle unlees Sie wieder eindeutiger Zeilenbezeichner für die Tabelle.
Tun, müssen Sie alle diese Zeilen in der gleichen Zeit? Können Sie Holen Sie in teilen? Diese Frage wurde schon mehrfach gefragt: Android SQLite und große Datenmengen
Hier ist noch ein Vorschlag: Wenn Sie 90 Felder, die Sie ändern müssen, teilen Sie diese in 10 verschiedenen Ansichten. In jeder Ansicht haben Sie einen Pfeil Links und Pfeil rechts, so können Sie horizontal traverse über die Bildschirme. Daher jede Ansicht zeigt 9 Felder. Oder eine Strategie wie die. Im wesentlichen sind dies alle die gleichen Ansichten, außer für Spaltennamen, damit Sie sollte nicht zu viel code ändern.