return aus stored procedure

jenno

Erfahrenes Mitglied
Liebe Menschen,

kann mir jemand einen Tipp oder ein Beispiel geben, wie ich aus einer stored procedure an einen return value in meinen vb-code kommen kann?

Hier die stored procedure

PHP:
create proc AddDeclaration
-- alter proc AddDeclaration
as
set nocount on
	declare @declaration_id int

	INSERT INTO dbo.declaration(created)
	VALUES(Getdate())	
	SELECT @declaration_id = @@IDENTITY

	return @declaration_id

go

und hier n paar Schnipsel aus dem vb-Code

PHP:
Private _cn As SqlConnection
Private _cm As SqlCommand
.....
_cn = New SqlConnection(My.Settings.sqlConnectionString)
_cn.Open()
.....
_cm = New SqlCommand("AddDeclaration", _cn)
 _cm.Connection = _cn
_cm.CommandType = CommandType.StoredProcedure

_cm.ExecuteNonQuery()
....

Der Zugriff auf die stored procedure AddDeclaration funktioniert und es wird auch ein Datensatz hinzugefügt. Weiss jetzt leider nicht, wie ich an die id des hinzugefügten Datensatzes komme.
 
...Hm, denke dass das return an sich quatsch war:

PHP:
 create proc AddDeclaration
-- alter proc AddDeclaration
as
set nocount on
    declare @declaration_id int

    INSERT INTO dbo.declaration(created)
    VALUES(Getdate())    
    SELECT @declaration_id = @@IDENTITY
go

und trotzdem krieg ich es leider noch nicht gebacken, an die @declaration_id zu gelangen :confused:
 
So, und für die die es interessiert...hab jetzt ne Lösung gefunden:

PHP:
create proc AddDeclaration    
@declaration_id int output
as  
set nocount on   
  
     INSERT INTO dbo.declaration(created)  
     VALUES(Getdate())       
     SELECT @declaration_id = @@IDENTITY

PHP:
Private _cn As SqlConnection
Private _cm As SqlCommand
.....
_cn = New SqlConnection(My.Settings.sqlConnectionString)
_cn.Open()
.....
_cm = New SqlCommand("AddDeclaration", _cn)
_cm.Connection = _cn
_cm.CommandType = CommandType.StoredProcedure

Dim r As New SqlParameter("@declaration_id", SqlDbType.Int)
r.Direction = ParameterDirection.Output
_cm.Parameters.Add(r)

_cm.ExecuteNonQuery()
Debug.Print(_cm.Parameters(0).Value)
....

Ausgegeben wird dann die id des gerade zugefügten Datensatzes :)
 
Zurück