Einzelnen Beitrag anzeigen

Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: SProc misslungen: multiple rows in singleton select

  Alt 30. Jul 2006, 09:46
Zitat von Jürgen Thomas:
Es ist denkbar, dass zu diesem Zeitpunkt eine Verbindung über IBConsole (zur Kontrolle) und eine durch die Anwendung (mit dem o.g. Problem) besteht; ich muss die Abfrage nach dem Computer_Name verfeinern.

Dann ist dies natürlich nicht in Ordnung. Aber kann es wirklich Auswirkung auf den Suspend-Befehl und die eigentliche Fehlermeldung haben?
SELECT TMP$USER_HOST FROM TMP$ATTACHMENTS WHERE TMP$USER = USER INTO :Computer_Name; Interbase erwartet in der SPL bei dem Konstrukt Into einen Select, welcher keinen oder einen Datensatz liefert.

Damit kann er als Wert für die Variable Computer_Name entweder null (kein Datensatz) oder den Inhalt von
TMP$USER_HOST (genau 1 Datensatz) erhalten.

Eine Ergebnismenge von mehr als 1 Datensatz ist bei Into (ohne for select .. do ..) ungültig und liefert dir folgende Fehlermeldung.

...multiple rows in singleton select

Das Suspend kannst du bei der Fehlersuche vergessen. Da in Interbase auch Selected Procedures unterstützt werden, kannst du Suspend beliebig oft aufrufen. Es produziert keine Fehlermeldung. Der letzte zugewiesene Wert vor dem Suspend wird zurückgegeen.

Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat