用于删除超过x天的SQLite数据库中的条目的服务

时间:2013-07-04 11:08:53

标签: android android-service android-sqlite

我有一个Service,它会清理一些文件,并执行一些SQL查询。此特定SQL查询应删除超过x天的条目。我这样做的方法是:

public boolean deleteOldCases(int days) {

        String deleteQuery = "DELETE FROM " + TABLE_CASES + " WHERE " + DATE +  " <= date('now','-" + days + " day')";
        Log.d("Delete Query: ", deleteQuery);
        SQLiteDatabase db = this.getWritableDatabase(); 
        db.rawQuery(deleteQuery, null);
        db.close();

        return true;
    }

当我向数据库添加条目时,我这样做:

public void addCase(Case c) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues values = new ContentValues();
        values.put(KEY_ID, c.getCaseNumber());
        values.put(STATUS, "");

        // Inserting Row
        db.insert(TABLE_CASES, null, values);

        db.execSQL("Update " + TABLE_CASES + " Set " + DATE + "=datetime() where " + KEY_ID + "= '" + c.getCaseNumber() + "';" );

        db.close(); // Closing database connection

    }

从我的服务调用此方法,我可以通过记录验证此方法被调用。所有这些数据都在ListView中显示给用户,这显然有效。但是旧条目根本没有删除..

我怀疑是因为我使用date = datetime()保存案例并尝试使用<=date('now', '-1 day')

删除它

有人能看出做错了吗?

1 个答案:

答案 0 :(得分:0)

仅将rawQuery()用于实际查询(以“SELECT”关键字开头的SQL语句)。请改用execSql()