2012-03-27 8 views
0

Ich versuche, die SQLite rawQuery Methode zu verwenden, basierend auf dem Code hier:Was muss ich tun, um die rawQuery() -Methode von SQLite zu implementieren?

Android record exists() in database?

... aber ich bekomme "Die Methode rawQuery (String, String []) ist nicht definiert für die Typ OdaaDBOpenHelper Authorize_Activity_DynamicControls.java "mit diesem Code:

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 { 

ich habe versucht, es sowohl den Namen der Instanz meiner SQLiteOpenHelper abgeleitete Klasse verwendet wird, und mit Hilfe der Klasse Name selbst (comm im obigen Code enthalten).

Was muss ich tun, um rawQuery() zu implementieren oder zu veranlassen, dass es erkannt/bestätigt wird?

Antwort

1

Von dieser Frage richtige Antwort:

Bedenken Sie, dass Ihre mdb SqlLiteDatabase Klasse ist ...

OdaaDBOH sollte eine Instanz eines SQLiteDatabase sein, wenn Sie rawQuery darauf verwenden wollen, die meisten wahrscheinlich bieten Sie dort die Implementierung eines SQLiteOpenHelper an, das natürlich keine Methode rawQuery hat.

3

rawQuery() ist eine Methode auf SQLiteDatabase, nicht SQLiteOpenHelper. Rufen Sie getReadableDatabase() oder getWritableDatabase() auf Ihrer SQLiteOpenHelper an, um eine SQLiteDatabase zu erhalten.

Verwandte Themen