Что я должен сделать, чтобы реализовать метод SQLQ rawQuery()?

Я пытаюсь использовать метод SQLQ rawQuery, основанный на коде здесь:

Android запись существует () в базе данных?

... но я получаю "Метод 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 ответа

Решение

На этот вопрос правильный ответ:

Учтите, что mDb - это ваш класс SqlLiteDatabase...

OdaaDBOH должен быть примером SQLiteDatabase если вы хотите использовать rawQuery на нем, скорее всего, вы предоставляете реализацию SQLiteOpenHelper там, который, конечно, не имеет метода rawQuery,

rawQuery() это метод на SQLiteDatabaseне SQLiteOpenHelper, Вызов getReadableDatabase() или же getWritableDatabase() на ваше SQLiteOpenHelper чтобы получить SQLiteDatabase,

Другие вопросы по тегам