Hallo Zusammen!
Ich habe da eine Kleinigkeit beim DELETE auf eine Datenbank (in meinem Fall Oracle).
Wende ich den DELETE-Befehl in einem SQL-Tool (z.B. SqlPlus) bei Oracle an, erhalte ich immer die Anzahl der gelöschten Datensätze (bzw. 0 falls nichts gelöscht werden konnte) mitgeteilt.
Hier reagiert PB bzw. der ODBC-Treiber anderster. Die Anzahl der Datensätze werden nicht zurück gegeben.
Sofern Datensätze gelöscht werden konnten, gibt der Befehl DatabaseQuery bzw. DatabaseUpdate lediglich einen Wert ungleich 0 zurück (= kein Fehler aufgetreten). Wird kein Datensatz gelöscht, so geben die beiden Befehle den Wert 0 (= Fehler) zurück. Es handelt sich hierbei um keinen Fehler. Beim Befehl DatabaseError() wird keine Meldung zurück gegeben. Erst in Kombination wird eindeutig klar, daß kein Fehler aufgetreten ist und lediglich kein Datensatz gelöscht wurde.
Habt Ihr damit Erfahrung? Wie löst Ihr das?
Gibt es die Möglichkeit die Anzahl der gelöschten Datensätze zu ermitteln?
Grüße
Ralf
SQL-Befehl DELETE i.V. mit Rückgabewert DatabaseQuery
Re: SQL-Befehl DELETE i.V. mit Rückgabewert DatabaseQuery
außer der von Dir bereits genannten Möglichkeit, den Rückgabewert 0 mit einem leerenlapo hat geschrieben:Gibt es die Möglichkeit die Anzahl der gelöschten Datensätze zu ermitteln?
DatabaseError() zu testen, fällt mir so ad hoc auch nicht ein, wie man das mit nativen
Mitteln machen könnte.
Allerdings gäbe es die Möglichkeit, ADOmate von srod zu verwenden (kommt darauf an,
welche DB Du konnektieren willst). Hier könnte man DatabaseUpdate so modifizieren,
dass es die Anzahl der betroffenen Zeilen (RecordsAffected) zurückgibt.
Sag Bescheid, wenn Du Dich dafür interessierst, dann kann ich einen entsprechenden Schnippsel posten.
Grüße ... Kiffi
a²+b²=mc²
Re: SQL-Befehl DELETE i.V. mit Rückgabewert DatabaseQuery
Hallo Kiffi,
danke für Deine Infos.
Ich verwende zur Zeit noch eine ältere Version von PB und ADOmate läuft nicht damit. Davon abgesehen habe ich mir schon für die diversen Tabellen mit den Möglichkeiten von PB (= ODBC) eine Bibliothek erstellt... Das umstellen wäre etwas mühselig.
Grüße
Ralf
danke für Deine Infos.
Ich verwende zur Zeit noch eine ältere Version von PB und ADOmate läuft nicht damit. Davon abgesehen habe ich mir schon für die diversen Tabellen mit den Möglichkeiten von PB (= ODBC) eine Bibliothek erstellt... Das umstellen wäre etwas mühselig.
Grüße
Ralf