# delete



## cam (1. Dez 2008)

Hallo,

warum wird der Datensatz nicht gelöscht?


```
PreparedStatement stmRueckDat = (PreparedStatement) Frame.cn.prepareStatement("DELETE art_nr FROM rueck_li WHERE zeitstemp = ?");
stmRueckDat.setTimestamp(1, Timestamp.valueOf(datumStr));
```

datumStr = 2008-12-01 09:11:40.283
zeitstemp = 2008-12-01 09:11:40.283

(Es wird keine Fehlermeldung ausgegeben.)


----------



## The_S (1. Dez 2008)

Weil du das Statement noch executen musst?


----------



## SlaterB (1. Dez 2008)

und commiten?
am besten noch vorher ein gleichlautendes Select um zu prüfen ob was da ist, bzw den Rückgabewert anschauen


----------



## cam (1. Dez 2008)

Oh man, das execute hab ich echt vergessen *rotwerd*
Aber wie geht das mit dem commiten?


----------



## cam (1. Dez 2008)

Ach ja und mit dem execute kommt jetzt folgende Fehlermeldung:

Es wurde kein Resultset von der Anweisung zurückgegeben.

(Das art_nr hab ich auch aus der Abfrage rausgenommen.)


----------



## maki (1. Dez 2008)

executeUpdate


----------



## SlaterB (1. Dez 2008)

executeUpdate statt executeQuery, beliebter Fehler

und überhaupt besser auch den Code dazu posten

> Aber wie geht das mit dem commiten?

hast du irgendeine Anleitung? wollen wir erstmal hoffen, dass es automatisch passiert


----------



## cam (1. Dez 2008)

Also irgendwie scheint es jetzt doch zu funktionieren:


```
try{
    PreparedStatement stmRueckDat = (PreparedStatement) Frame.cn.prepareStatement("DELETE FROM rueck_li WHERE    zeitstemp = ?");
    stmRueckDat.setTimestamp(1, Timestamp.valueOf(datumStr));
    Frame.rs = stmRueckDat.executeQuery();
}catch(Exception ex){
    System.out.println("Keine Verbindung: " + ex);
}
```

[/code]


----------



## The_S (1. Dez 2008)

Anmerkungen:

- Es ist sinnvoller die ganze Exception mitzuprotokollieren (inkl. StackTrace)
- Die nicht mehr benötigten Verbindungen sollten im finally-Block geschlossen werden.


----------

