Select – Anweisung - Verständnisfrage

07/04/2009 - 18:41 von Cornelia Steiner | Report spam
Hallo Newsgroup,

Ich bin relativ neu in der SQl – Materie und bin auf folgendes Problem
gestoßen.
Vielleicht ist auch der Ansatz generell falsch.

@hsjahr ist ein Parameter den ich beim Aufruf übergebe

Folgende SQl Anweisung bringt den Fehler: (Der eingehende Tabular Data
Stream (TDS) für das RPC-Protokoll (Remote Procedure Call) ist nicht
richtig…Parameter 3 @hsjahr ….)

SELECT CASE WHEN @hsjahr > Buchung_Haushaltsjahr THEN '1' ELSE '0'
END AS Kassenrest
FROM BuchungTab


Folgende SQl Anweisung funktioniert (@hsjahr wurde in extra Spalte
aufgenommen):

SELECT @hsjahr AS Hsj, CASE WHEN @hsjahr > Buchung_Haushaltsjahr THEN
'1' ELSE '0' END AS Kassenrest
FROM BuchungTab


Warum ist das so?

vielen Dank und viele Grüße
Conny
 

Lesen sie die antworten

#1 Christof Wollenhaupt
07/04/2009 - 21:32 | Warnen spam
Hallo Cornelia,

Folgende SQl Anweisung bringt den Fehler: (Der eingehende Tabular Data
Stream (TDS) für das RPC-Protokoll (Remote Procedure Call) ist nicht
richtig…Parameter 3 @hsjahr ….)



Wie lautet denn die vollstàndige Fehlermeldung oder die Fehlernummer? Mit
dem Text beginnt ein dutzend Fehlermeldungen.

SELECT CASE WHEN @hsjahr > Buchung_Haushaltsjahr THEN '1' ELSE '0'
END AS Kassenrest
FROM BuchungTab



Ist das der vollstàndige Code, der ausgeführt wird? Wird dieser Code direkt
übergeben oder stammt er aus einer Stored Procedure? Das Fragment selbst
jedenfalls scheint gültig zu sein. Wie erfolgt der Aufruf? ADO.NET, ODBC,
OLEDB...

Mit manchen ODBC Treibern habe ich die Erfahrung gemacht, dass nicht immer
der gesamt Befehl übertragen wurde, so dass geringfügige Änderungen am
Befehl plötzlich dazu führten, dass ein vorher fehlerhafter Befehl plötzlich
làuft. Hast Du mal geschaut, was im ersten Fall wirklich gesendet wird, über
das Netz geht und beim SQL Server ankommt?


Christof

Ähnliche fragen