2012-06-22 23 views
6

アンドロイドのカーソルは最大1 MBのデータしか保持できないようです。Androidカーソルの最大サイズ

SQLiteデータベースの1MBの制限を超えているテーブルから最大数の行を引き出す最も効率的な方法は何でしょうか?

+0

私が今までに思いついた最善の方法は、いくつかの行をサンプリングして、それを引くことができる行の数を「見積もる」ことです。 1MBの制限を超えないようにしてください。 – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

+0

最も良い方法は、ページングという概念を使用することです。つまり、データベースからデータを取得し、10行ずつ取得し、次のデータベースから取得する前にカーソルをクリアします。 – deepak825

答えて

-1

LIMIT句を指定すると、行を部分的にフェッチすることができます。

+0

適切ですが、適切な制限はどのように決定されますか? – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

+0

あなたはCount句を使うことができます。 – Programmer

+0

それから、等しく、好きなように分けることができます – Programmer

0

私は右の限度を決定するために、ハードかつ迅速な方法はないと思うが、私はCursorWindowのドキュメントで見てたCharArrayBufferがsizeCopiedと呼ばれる整数フィールドとでテキストを取るcopyStringToBuffer方法を持っているようcopyStringToBuffer (int row, int column, CharArrayBuffer buffer)は有望と思われることがわかりました指定された行と列たぶんバッファからサイズを取得して、あなたが持っている各行とカラムを追加することができますか? SQLiteCursorを使用している場合は、setWindow(CursorWindow window)を使用して独自のウィンドウを設定できます。