sqlite3_close失败27

时间:2013-01-04 15:40:51

标签: android-sqlite

我得到这个“sqlite3_close(0x1f7f708)失败: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天开始堆积这个问题..

1 个答案:

答案 0 :(得分:0)

我认为这就是答案。 What does sqlite3_close failed 27 mean?。它基本上意味着有些语句没有调用close()。