2013-01-04 31 views
0

我得到這個「sqlite3_close(0x1f7f708)失敗:27」有時錯誤,我不明白爲什麼。這裏是我的代碼:sqlite3_close失敗27

xMessage[] msgs = new xMessage[howMany]; 
    SQLiteDatabase db = this.getReadableDatabase(); 
    Cursor cursor, cursorData = null; 

    cursor = db.query(mail_bridge_table_name, new String[] {mbfn_mbridge_PK, mbfn_mdata_FK, mbfn_contacts, mbfn_subject, mbfn_sentTime, mbfn_receivedTime, mbfn_maccount_FK }, null, 
       null, null, null, mbfn_sentTime + " desc", first + "," + howMany); 

    if (cursor != null) 
      cursor.moveToFirst(); 
    else 
    { 
     msgs[0] = new xMessage(); 
     msgs[0].set_bodyPlain("Mail data not found!"); 
     return msgs; 
    } 
    long count = cursor.getCount(); 
    for (int i = 0; i < count; i++) 
    { 
      [omissis: db unrelated code....] 

     cursorData = db.query(mail_data_table_name, new String[] {mdfn_mdata_PK, mdfn_header, mdfn_body }, mdfn_mdata_PK + "=?", 
        new String[]{cursor.getString(mbfi_mdata_FK)}, null, null, null, null); 

     if (cursorData != null) 
     { 
      cursorData.moveToFirst(); 
     } 
     cursor.moveToNext(); 
    } 
    if (cursor != null) 
    { 
     cursor.close(); 
    } 
    if (cursorData != null) 
    { 
     cursorData.close(); 
    } 
    db.close(); <----- here I get sometime the error 
    return msgs; 

我有另一個線程使用相同的數據庫的工作,但我得到的錯誤,甚至停止它。我查看了一下,並在論壇上發現失敗的結果:27持續嘗試關閉數據庫,但仍然打開一些動作...但我只打開兩個關閉的遊標。

任何人都可以提供幫助嗎?我在這個問題上堆棧了2天..

回答