1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. Spikor, 01.05.2010 #1
    Spikor

    Spikor Threadstarter Neuer Benutzer

    Hallo,

    ich bekomme kein Prepared Statement hin um eine Row in meiner DB zu löschen. Vieleicht kann mir einer helfen.

    So sieht der Code aus mal ohne try/catch, welcher abstürzt.

    public void loescheInhalt(String inhalt) {

    SQLiteStatement statement = myDataBase.compileStatement("DELETE FROM " + "gemerkte" + " WHERE value = (?)");
    statement.bindString(1, inhalt);
    statement.execute();
    statement.close();

    }

    Danke schon mal!

    Gruß Ray
     
  2. Raidri, 01.05.2010 #2
    Raidri

    Raidri Android-Hilfe.de Mitglied

    Habe mit dem Android SQLLite zwar noch nicht gearbeitet, aber ich glaube die runden Klammern bei dem ? sind nicht richtig, da müssen doch bei nem String ' hin

    hier:

    SQLiteStatement statement = myDataBase.compileStatement("DELETE FROM " + "gemerkte" + " WHERE value = '?'");

    Hoffe, das ist die Lösung

    Gruß
    Raidri
     
  3. Spikor, 01.05.2010 #3
    Spikor

    Spikor Threadstarter Neuer Benutzer

    Danke für die Antwort, doch leider funktioniert es auch nicht.
    :confused:

    Gruß Ray
     
  4. Shinigami, 01.05.2010 #4
    Shinigami

    Shinigami Fortgeschrittenes Mitglied

    Hi,

    bitte mal Hochkommas und Klammern weglassen um dem ?

    Ansonsten das Stmt wie gewohnt aufbauen, also: "DELETE FROM table_name WHERE col_name = ?"

    Gruß,
    Shini
     
  5. Spikor, 02.05.2010 #5
    Spikor

    Spikor Threadstarter Neuer Benutzer

    Danke nochmals ich habs jetzt etwas umgebaut und nun funktioniert es so:

    Löschanweisung:

    myDataBase.delete("Tabellenname", "_id=" + zuLoeschenderInhalt, null);


    die id frage ich ab durch:


    Cursor ratingInhalt = myDataBase.query(false, "Tabellenname",
    new String[] { "_id", "titel","rating" }, "Deftitel = ?",
    new String[] { bewertet}, null, null, null, null);

    while (ratingInhalt.moveToNext()) {
    spaltenId = ratingInhalt.getLong(0);
    }
     
Du betrachtest das Thema "Prepared Statement Delete Row" im Forum "Android App Entwicklung",