Einzelnen Beitrag anzeigen

idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#10

Re: Rückgabeparameter bei FireBird

  Alt 28. Mai 2010, 23:21
Leider nein, hat mit meinem Problem nichts zu tun.

Ich bekomme einfach das Ergebnis des SQL Statements, das mit der returning Klausel an das Programm zurückgegeben werden sollte, nicht zu fassen. Bei der Rückkehr von der Query ist Query.params ganz leer.

Aber es muss irgend etwas grundlegend falsch sein, weil in der Tabelle auch kein Datensatz abgelegt wird. Die Übergabe des Befehlsstrings an SQL funktioniert aber offenbar, weil wenn ich den String irgendwie auf ein ungültiges SQL-Statement ändere (ungültiger Tabellenname oder fehlender Strichpunkt am Ende), löst der Aufruf von Open eine Exception aus. Nur wenn S einen syntaktisch richtigen SQL Befehl enthält, kehrt OPEN ohne Fehlermeldung zurück, ausgeführt wird das Insert aber trotzdem nicht - nicht einmal, wenn ich die returning Klausel weglasse.

Edit: Dass keine Daten in der Tabelle ankommen, stimmt nicht. Es scheint nötig zu sein, im ISQL nach einem Select ein commit einzugeben, bevor man mit einem neuerlichen Select die neuen Daten zu Gesicht bekommt. Offenbar wird mit einem select implizit eine Transaktion gestartet, die dann die Sicht auf die Daten konsistent hält. Fazit: Das Insert wird ausgeführt, aber ich komme einfach nicht zum Rückgabewert.
  Mit Zitat antworten Zitat