webForumDet fria alternativet

Stored Procedures

ASPur ASP

5 svar · 309 visningar · startad av jonne

jonneMedlem sedan jan. 20011 154 inlägg
#1

Liten fråga. Har ett par lagrade procedurer för exv inert. Hur använder jag dessa i asp ?
Har testat att göra på detta sättet:

strName = Request.Form("ffName")
	strPhone = Request.Form("ffPhone")
	paramstring = paramstring &"'"&strName&"','"&strPhone&"'"
	objCN.execute ("exec dbo.insert_tblUsers_1 " & paramstring)

och det verkar ju fungera, men är det såhär man ska göra eller finns det något smidigare/annorlunda sätt?

------------------
Varför får inte jag köra småsten när Tommy Körberg?

[Redigerat av jonne den 03 aug 2001]

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Ja, om du inte har några utparametrar så är det enklaste sättet. Tycker att det ser smidigt ut.

Om proceduren har utparametrar så får man använda ett kommandoobjekt

------------------
essentitia preter non sans multiplicandum

BomaMedlem sedan aug. 200160 inlägg
#3

Det finns en bra artikel om procedurer och ASP på:
http://www.aspfaq.com/faq/sp.asp

jonneMedlem sedan jan. 20011 154 inlägg
#4

LarsG>> Lust att utveckla "utparametrar" ? :)

------------------
Varför får inte jag köra småsten när Tommy Körberg?

LarsGMedlem sedan dec. 200012 464 inlägg
#5

Tja, om man använder SQL servers procedurer så behöver man knappast utparametrar. Det är enklare att returnera värdena som ett resultatset i stället

create procedure x (@x int output,@y int output) as
...
set @x = 47
...
set @x = 11

då är det likvärdigt att skriva

create procedure x  as
declare @x int
declare @y int
...
set @x = 47
...
set @x = 11

select @x,@y

vilket är enklare att hantera i VB-script då man får upp det som ett vanligt recordset

Om man nu har utparametrar så måste man skapa parameterobjekt och lagra i kommandoobjektet


Set ogr = server.createobject("adodb.command")
ogr.CommandText = "nisse"
ogr.CommandType = adCmdStoredProc
   
aleb = request.form("aleb")
Set parIn = ogr.CreateParameter("percentage", adInteger, adParamInput)

ogr.Parameters.Append parIn
parIn.Value = aleb

Set parIn = ogr.CreateParameter("percentage", adInteger, adParamOutput)
ogr.Parameters.Append parOut

ogr.execute 

response.write parOut.value

Ungefär så, som synes så blir det bra mycket mer kod med parameterhanteringen. Det kan vara en fördel att använda kommandoobjektet om man skall anropa en procedur flera gånger fast med olika värden och då är det bara att sätta value för parametern och anropa execute. (Det blir då ingen omkompilering av execute satsen, vilket det skulle bli om man byggde den dynamiskt för varje anrop.)

------------------
essentitia preter non sans multiplicandum

jonneMedlem sedan jan. 20011 154 inlägg
#6

Tackar och bockar.

------------------
Varför får inte jag köra småsten när Tommy Körberg?

132 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)