3 Stimmen

Android: Wie kann ich ExecuteScalar nach Java portieren?

SqlCommand.ExecuteScalar-Methode
Führt die Abfrage aus und gibt die erste Spalte der ersten Zeile in der Ergebnismenge zurück, die von der Abfrage zurückgegeben wird. Weitere Spalten oder Zeilen werden ignoriert.

Ich vermute, dass dies einen starken Einsatz von Generika erfordern wird.

Angenommen, ich habe eine SQLiteDatabase / Cursor Objekt.

3voto

blank Punkte 17444

Werfen Sie einen Blick auf SQLLiteStatement

long simpleQueryForLong() Ausführen einer Anweisung, die eine 1 durch 1 ergibt Tabelle mit einem numerischen Wert zurückgibt.

String simpleQueryForString() Führen Sie eine Anweisung aus, die eine 1 x 1 Tabelle mit einem Textwert zurückgibt.

2voto

Caner Punkte 53228

Diese Logik hat bei mir funktioniert:

public int ExecuteScalar(/* code...*/) {
    Cursor cursor = database.rawQuery(sql, selectionArgs);
    try {
        cursor.moveToNext();
        int val = cursor.getInt(0);
        cursor.close();
        return val;
    }   
    catch (Exception e) {
        /* code...*/
    }
    return -1;
}

0voto

sproketboy Punkte 8416

Wenn Sie einen Primärschlüssel abrufen, können Sie die Methode getGeneratedKeys verwenden, die nach einer Einfügung ein resultSet der generierten Schlüssel zurückgibt.

0voto

Mladen Punkte 11

Die Übergabe des Datenbankobjekts ist db

long result = db.compileStatement("select count(*) from some_table").simpleQueryForLong();

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X