[ASP/SQL]Return waarde uit Stored Procedure

Pagina: 1
Acties:

  • Pepper
  • Registratie: Februari 2002
  • Laatst online: 19-06-2025

Pepper

The one and only!!

Topicstarter
Als ik een stored procedure (SP) aan roep vanuit ASP (een insert bijv)
Wil ik een return waarde van uit mijn SP terug geven aan ASP.
Aangezien dit geen recordset is zou ik graag willen weten hoe ik deze terug krijg...

voorbeeld:
SP:
code:
1
2
3
4
5
6
7
8
9
10
11
CREATE PROCEDURE [DBO].[testProc] 
   @BlaBlaVar numeric(9)
AS
DECLARE @test int
BEGIN
   INSERT INTO Tabel1 (blabla)
   VALUES     (@BlaBlaVar)
   SET @test = SCOPE_IDENTITY()
   RETURN  @test
END
GO


In asp moet dan iets van:
code:
1
2
3
4
5
6
7
8
SQLQuery = "EXEC sp_testProc @BlaBlaVar = "&project
SET objRS = Server.CreateObject("ADODB.RecordSet")
objRS.ActiveConnection = Database
objRS.Open SQLQuery
While not objRS.EOF
   response.write <@test uit die sp>
Wend
SET objRS = nothing

maarja dit is een recordset, dus dat werkt niet.
iemand een idee?

(heb search gebruik maar kon geen duidelijk antwoord vinden :| )

dus...


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 06-05 12:34

mulder

ik spuug op het trottoir

Kijk eens naar het Command object met de bijbehorende in & out Parameters

[ Voor 4% gewijzigd door mulder op 20-06-2005 11:57 ]

oogjes open, snaveltjes dicht


  • whoami
  • Registratie: December 2000
  • Laatst online: 06-05 15:36
Met een OUT parameter die je in je SP opvult.

code:
1
2
3
4
5
6
7
8
CREATE PROCEDURE bliep ( @naam          VARCHAR,
                                             @bliepid         INT OUT )
AS
BEGIN
   INSERT INTO bliep ( naam ) VALUES ( @naam )

   SELECT @bliepid = @@identity FROM bliep
END

Zoiets ongeveer, er kunnen syntax foutjes in zitten.

https://fgheysels.github.io/


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Je moet OUTPUT parameters gebruiken,

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE PROCEDURE [DBO].[testProc] 
   @BlaBlaVar numeric(9),
   @test INT OUTPUT

AS

BEGIN
   INSERT INTO Tabel1 (blabla)
   VALUES     (@BlaBlaVar)
   SET @test = SCOPE_IDENTITY()
   RETURN  
END
GO



Je moet nu wel het command object met parameterobjecten gaan gebruiken in je asp code. Met google zijn hier wel veel voorbeelden van te vinden.

Als alternatief zou je het volgende kunnen gebruiken

code:
1
2
3
4
5
6
7
8
9
10
CREATE PROCEDURE [DBO].[testProc] 
   @BlaBlaVar numeric(9)
AS
SET NOCOUNT ON
BEGIN
   INSERT INTO Tabel1 (blabla)
   VALUES     (@BlaBlaVar)
  SELECT SCOPE_IDENTITY()
END
GO


Je kunt dan uit het recordset object de identity waarde halen.


/laat, alweer.

[ Voor 3% gewijzigd door P_de_B op 20-06-2005 12:00 ]

Oops! Google Chrome could not find www.rijks%20museum.nl


  • Pepper
  • Registratie: Februari 2002
  • Laatst online: 19-06-2025

Pepper

The one and only!!

Topicstarter
thnx hier kan ik wel wat mee :D

dus...


  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
zoals je het in je voorbeeld doet krijg je trouwens gewoon een record set terug, met 1 kolom en 1 regel, waar de return waarde in staat.

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
zneek schreef op maandag 20 juni 2005 @ 20:09:
zoals je het in je voorbeeld doet krijg je trouwens gewoon een record set terug, met 1 kolom en 1 regel, waar de return waarde in staat.
Klopt in principe, maar hij probeert het ook nog te returnen via het return statement.

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Ik zou eens kijken op http://www.asp101.com/articles/wrox/asp30/26100903.asp hier staat een uitstekende uitleg over het gebruik van Stored Procedures i.c.m. ASP. Ouput parameters en return Value worden hier ook in besproken...


(o ja dat was de tweede link bij Google na een serach op sql return value asp)
Pagina: 1