我该怎么做才能实现SQLite的rawQuery()方法?

时间:2012-03-27 14:40:35

标签: android sqlite sqliteopenhelper

我尝试使用SQLite rawQuery方法,基于此处的代码:

Android record exists() in database?

...但我得到" 方法rawQuery(String,String [])未定义类型OdaaDBOpenHelper Authorize_Activity_DynamicControls.java "使用此代码:

    OdaaDBOH = new OdaaDBOpenHelper(this);
. . .
    private boolean RecordExists(String _id) {
        // This:
        Cursor cursor = OdaaDBOH.rawQuery("select 1 from NAPOLEON_DYNAMITE_TABLE where _id=%s",  
        // or this:
        //Cursor cursor = OdaaDOdaaDBOpenHelperBOH.rawQuery("select 1 from     
NAPOLEON_DYNAMITE_TABLE where _id=%s",  
                new String[] { _id });
        boolean exists = (cursor.getCount() > 0); 
        cursor.close(); 
        return exists; 
    }

. . .
// from referenced unit:

public class OdaaDBOpenHelper extends SQLiteOpenHelper {

我尝试使用我的SQLiteOpenHelper派生类的实例名称并使用该类 名称本身(在上面的代码中注释掉)。

我必须做些什么来实现rawQuery()或使其被识别/确认?

2 个答案:

答案 0 :(得分:3)

rawQuery()SQLiteDatabase上的方法,而不是SQLiteOpenHelper。致电getReadableDatabase()上的getWritableDatabase()SQLiteOpenHelper,获取SQLiteDatabase

答案 1 :(得分:1)

从这个问题正确回答:

考虑到mDb是您的SqlLiteDatabase类...

OdaaDBOH 应该是SQLiteDatabase的实例,如果您想在其上使用rawQuery,那么很可能您正在提供SQLiteOpenHelper的实施,当然没有方法rawQuery