2012-03-27 1 views
0

Я пытаюсь использовать метод SQLite rawQuery, на основе кода здесь:Что я должен сделать для реализации метода rawQuery() SQLite?

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() или вызвать его распознавание/подтверждение?

ответ

1

С этим вопросом правильного ответа:

считает, что MDB вашего класса SqlLiteDatabase ...

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

3

rawQuery() - это метод на SQLiteDatabase, а не SQLiteOpenHelper. Позвоните getReadableDatabase() или getWritableDatabase() на свой SQLiteOpenHelper, чтобы получить SQLiteDatabase.