0

この「sqlite3_close(0x1f7f708)failed: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つのカーソルを開くだけです。

誰でも助けることができますか?私は2日以来この問題を積み重ねています。

4

1 に答える 1

0

これが答えだと思います。sqlite3_close failed 27はどういう意味ですか?。これは基本的に、close()を呼び出していないステートメントがあることを意味します。

于 2013-04-02T06:48:34.773 に答える