Rückgabewert von SP ?

06/08/2008 - 20:10 von falk neumann | Report spam
Hallo,
ich habe folgende SP:

...
@Jahr char(4),
...
@id varchar(25),
@out int OUTPUT
AS
declare @sql1 varchar(100)
set @sql1='UPDATE tbl_bestellungen' + @JAHR + '...
BEGIN TRAN
BEGIN TRY
exec (@sql1 )
commit Tran
set @out =0
END TRY
BEGIN CATCH
ROLLBACK TRAN
set @out =1
END CATCH

wenn ich nun in einem Access-Projekt @out als Rückgabewert auslese, ist
dieser Wert immer 0,
auch wenn die Transaktion fehlschlàgt und @out =1 sein soll.

-Access Code:
Dim Cmd As New ADODB.Command
With Cmd
.ActiveConnection = CurrentProject.Connection
.CommandType = adCmdStoredProc
.CommandText = "SP Name"
.Parameters.Refresh
.Parameters("@Jahr") = JAHR
...
.Execute
Fehler = .Parameters("@out")
...
Hat jemand eine Idee wie ich den Erfolg/Fehlschlag meiner SP's in Access
auslesen kann?

MfG
Falk Neumann
 

Lesen sie die antworten

#1 Christoph Muthmann
07/08/2008 - 10:42 | Warnen spam
falk neumann wrote:
[snip]

wenn ich nun in einem Access-Projekt @out als Rückgabewert auslese,
ist dieser Wert immer 0,
auch wenn die Transaktion fehlschlàgt und @out =1 sein soll.
[snip]
Hat jemand eine Idee wie ich den Erfolg/Fehlschlag meiner SP's in
Access auslesen kann?



Hallo Falk,
baue in die Prozedur folgende Zeilen ein:
Return(0)
oder Return(1)

Return(@out) geht natürlich auch!
dann sollte Access das auch mitbekommen. @Out ist nicht der Rückgabecode der
Prozedur, sondern ein Parameter!

Einen schönen Tag noch,
Christoph
Microsoft SQL Server MVP
http://www.insidesql.org

Ähnliche fragen