2012-06-22 3 views
6

안드로이드의 커서는 최대 1MB의 데이터 만 저장할 수 있습니다.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)을 사용하여 고유 한 창을 설정할 수 있습니다.