2014-12-10 5 views
0

내 안드로이드 응용 프로그램은 SQLITE를 사용합니다. 특정 테이블에서 데이터를 검색하려고하면 모든 것이 올바르게 작동합니다. 특히 varchar 유형이고 거대한 텍스트 (파일에 덮어 쓸 base64 문자열)를 보유하고 있습니다.오류 데이터 검색 SQLITE

내가이 테이블의 다른 열을 검색하려고하면 검색이 성공적이지만,이 칼럼에서 나는 오류 얻을 :

String Filequery= "Select FileName from Hyperlinks_GVT where Taskcode='"+currentTaskCode+"' 
         and Name='"+tempItem.getText()+"'"; 
        Log.d(TAG,"Query is: "+Filequery); 
       try { 
        cursor3 = MainActivity.myDataBase.rawQuery(Filequery, null); 
        String Data=""; 
        byte[] btData; 
        if (cursor3 != null && cursor3.moveToFirst()){ 
         do { 
         Data=cursor3.getString(cursor3.getColumnIndex("FileName")); 
         } while (cursor3.moveToNext()); 
        } 
        cursor3.close(); 

: 여기

java.lang.IllegalStateException: Couldn't read row 0, col 0 from CursorWindow. Make sure the 
    Cursor is initialized correctly before accessing data from it. 

내 코드입니다 표 :

CREATE TABLE [Hyperlinks_GVT](
[ID] integer PRIMARY KEY AUTOINCREMENT NOT NULL, 
[Taskcode] [int] NOT NULL, 
[TaskYear] [int] NOT NULL, 
[Name] [varchar](100) NOT NULL, 
[FileName] [varchar] NOT NULL, 
[Notes] [varchar](200) NOT NULL, 
[UserID] [nvarchar](50) NOT NULL, 
[CreationDT] [varchar](100) NOT NULL) 

FILEName은 큰 데이터가있는 열 참고 : SQLite Manager를 사용하여 Firefox에서 쿼리를 실행하면 쿼리가 결과를 검색하므로 쿼리가 정상적으로 작동하고 오류가 발생하지 않습니다. 도움을 주시면 감사하겠습니다.

+0

FileNamem에서 하드 코드 된 작은 텍스트로 시도하고 작동하는지 확인하십시오. – andrewww

+0

그래야 –

+0

작은 텍스트로 잘 작동합니다. –

답변

-1

다음을 시도하십시오. filename의 데이터 유형을 varchar에서 TEXT로 변경하십시오.

+0

시도해 보겠습니다. –

+0

1210 11 : 15 : 26.104 : W/CursorWindow (11911) : Window is full : 요청 할당 3382005 바이트, 여유 공간 2096708 바이트, 창 크기 2097152 바이트 –

+0

그래서 나는 많은 데이터를 동시에 검색 할 수없는 것 같아 : /? –