PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wann genau ist row count 0?


Zarathustra
2004-12-20, 09:19:10
rowCount = executeUpdate("INSERT INTO ... (...,..,...) VALUES (...,...,...)");

In welchen Fällen wird rowCount 0 ?

Ich habe das Problem öfters. Ein Fehler würde angefangen, aber es entsteht offensichtlich keiner. Das Statement wird einfach mit dem Ergebnis 0 abgefertigt. :frown:

Führt es ruhig etwas genauer aus. Danke.

Shink
2004-12-20, 09:45:03
Aehm,... wenn nix in der Datenbank upgedated wird. (Also in deinem Fall: Keine Zeile eingefuegt)

Zarathustra
2004-12-20, 09:54:20
Ja,das sagts aus...
Das ist Teil des Problems, hätte ich vielleciht erwähnen sollen. Es ist kein offensichtliches Anzeichen vorhanden, weswegen nichts eingefügt wrden sollte.
Ich hatte es schon dass ne ID von einem Primärschlüssel nicht ins reparedStatement eingefügt wurde, oder dass die Anzahl der Argumente nicht stimmt, aber nichts dergleichen diesmal! (vielleicht ein DB-Problem?...)
Ich bin ratlos und hoffe, dass ihr mir nen neuen Denkanstoß geben könnt...
(Der Grund weshalb man gewöhnlich als Team an einem größeren Programm arbeitet, aber neeeeee :mad: na egal.)

clm[k1]
2004-12-20, 10:17:55
Laut API-Doku wird da nur ne exception geschmissen wenn das statement einen zugriffsfehler oder ein "ResultSet object" produziert.

Ich weis zwar nicht wie du auf fehler prüfst, aber ich würde spontan die methode "getWarnings()" dafür benutzen.

Weil irgendwie habsch das gefühl das der bei nem ungültigen statement halt einfach nur 0 zurück gibt anstatt ne exception zu werfen - was irgendwie blöd ist, weil er auch 0 zurück gibt wenn das statement erfolgreich ist ;)


gruß
clm[k1]

Zarathustra
2004-12-20, 10:27:00
Huh?
Wie kann ein INSERT mit dem Ergebnis 0 erfolgreich sein?

clm[k1]
2004-12-20, 10:41:15
Huh?
Wie kann ein INSERT mit dem Ergebnis 0 erfolgreich sein?

hmm.. jetzt wo du's sagts... ich habe keine Ahnung.
hast recht, bei INSERT sollte was größeres als 0 zurück kommen - vorrausgesetzt natürlich das es erfolgreich war (hatte mich da in der API-Doku n bissl verlesen - habs ja nur mal schnell überflogen :rolleyes: )

Also würde ich sagen, das du wohl ein statement hast, das zwar gültig, aber nicht erfolgreich ist... hast du auf den betreffenden feldern n unique oder primärschlüssel liegen, die da probleme machen könnten?

Weil wie schon oben geschrieben: der liefert AFAIK nur ne exception bei zugriffproblemen, oder wenn ein ResultSet object produziert wird - soweit ich das verstanden habe, aber nicht bei einem nicht erfolgreichen statement.


korrigier' mich wenn ich mich irre
clm[k1]

Zarathustra
2004-12-20, 11:38:57
AAAAH!
Da ist wiedermal bei irgeneiner Datenbankwurschtelei hier in der Firma ein Trigger verlorengegangen!!!

Ich liebe Oracle! :uconf3:
ich liebe die Datenbankfritzen! :ubash3:

RRAAAAAHHHHH


Danke Leute, hat sich vorerst geklärt. :|