Avatar billede dkkarpen Nybegynder
30. maj 2000 - 15:53 Der er 9 kommentarer og
1 løsning

Stored procedure kald

Jeg har oprettet en SP som en query. Hvordan kalder jeg den fra en asp side. Kan den normaliseres til noget tabellignende, eller skal jeg noget helt andet? Lost og mangler svar...
Avatar billede limemedia Nybegynder
30. maj 2000 - 16:15 #1
EXECUTE procedurenavn

vil eksekvere din Stored Procedure
Skrives istedet for en SELECT statement o. lign.
Avatar billede kresten Nybegynder
30. maj 2000 - 16:16 #2
Hvad med noget i stil med:

' Init vars and objects
dim searchCommand, dbConnection, result, searchString, numOfRec
searchString = Request.Form("searchString")
set searchCommand = Server.CreateObject("ADODB.Command")
set dbConnection = Server.CreateObject("ADODB.Connection")
set result = Server.CreateObject("ADODB.Recordset")

' Connection to the database
dbConnection.Open "Driver={SQL Server};Server=minServer;Database=minDB;UID=mitLogin;PWD=mitPassword"
searchCommand.ActiveConnection = dbConnection
searchCommand.CommandText = "minStoredProcedure"
searchCommand.CommandType = adCmdStoredProc

' Create the parameter
' @searchArg is difined in the SP
searchCommand.Parameters.Append searchCommand.CreateParameter("@searchArg", adVarChar, adParamInput, 255, searchString)
result.Open searchCommand,, adOpenStatic,adLockOptimistic

if result.EOF then
    Response.Write "Nothing found"
else
    while not result.EOF
        Response.Write result.Fields("word") & "<BR>"
        result.moveNext
    wEnd
end if
Avatar billede paludan Nybegynder
30. maj 2000 - 16:23 #3
sql="execute sp_hentprodukter_ik 4,5"
set rs= conn.Execute(sql)

hvor 4 og 5 er parametre til din stored procedure.

Det virker !

h Thomas
Avatar billede dkkarpen Nybegynder
31. maj 2000 - 09:11 #4
paludan det virker. Men kan jeg ikke lave en select på en stored procedure fra mit asp script?
Avatar billede paludan Nybegynder
31. maj 2000 - 09:36 #5
Jeg er ikke helt sikker på hvad du mener, men du kan give parametre til en stored procedure og i rs vil du have det returnerende recordset fra din stored procedure.

h Thomas
Avatar billede dkkarpen Nybegynder
31. maj 2000 - 09:55 #6
Det jeg mener er:

Hvis man har lavet en query i en stored procedure. Kan man så lave lave følgende i sit asp script:

select bla bla bla from sp where id = & request("id")
Avatar billede paludan Nybegynder
31. maj 2000 - 10:29 #7
Det kan du ikke på den måde.

Du skal kalde de stored sådan her:
sql="execute sp_hentprodukter_ik 4,5"
set rs= conn.Execute(sql)

Herefter har du resultsettet i rs

Du kan så løbe dit resultset igennem som du fik fra din stored og skrive dem ud som passer med dit id.

do while not rs.eof
if id=reuqets("id") then
  response.write("Her er idet")
end if
rs.movenext
loop

h Thomas
Avatar billede nolle_k Nybegynder
23. juli 2000 - 19:09 #8
Så vidt jeg kan udlede fra denne debat er det muligvis et View du skal bruge i stedet for en stored procedure! Her kan du skrive SELECT bla FROM View1 WHERE id = bla bla. Et View er ligesom en tabel, der bare er lavet ved hjælp af en query!!

/Nolle_K
Avatar billede paludan Nybegynder
24. juli 2000 - 18:37 #9
Der er også den mulighed at man i en stored prod. laver en temp tabel denne table er unik for den enkelte stored prod. Denne tabel kan man så fylde med data fra en select eller flere select sætninger hvorefter man har mulighed for at lave en select på temp tabellen.

Man kan på denne måde samle sin logik i en stored prod. og kan få nogle ret komplicerede sql problemer løst.

H Thomas
Avatar billede nolle_k Nybegynder
15. september 2000 - 12:23 #10
Takker for venligheden!! *GG* ;O)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester