---
title: "Stored procedure-problem"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/12556-stored-procedure-problem"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Andy"
published: "2001-11-07T18:52:00.000Z"
updated: "2001-11-09T12:52:00.000Z"
replies: 5
views: 214
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/12556-stored-procedure-problem"
---

# Stored procedure-problem

## #1 — Andy, 2001-11-07T18:52Z

Jag är relativt ny vad gäller stored procedures...

Har en stored procedure som ser ut så här:

```
CREATE PROCEDURE sp_listTopicsByUser AS
DECLARE @id AS int
DECLARE @lastvisit AS datetime

SELECT     ID AS ID, Title AS Title, [Date] AS Date,
                          (SELECT     COUNT(*)
                            FROM          tablePosts
                            WHERE      BelongsToTopic = tt.ID) AS Replies,
                          (SELECT     COUNT(*)
                            FROM          tablePosts
                            WHERE      (BelongsToTopic = tt.ID AND Date > @lastvisit)) AS NewReplies
FROM         tableTopics tt
WHERE     (Poster = @id)
ORDER BY [Date] DESC
GO
```

Koden jag använder för att anropa min stored procedure, samt skicka värden till den ser ut så här:

```
Set cmd = Server.CreateObject("ADODB.Command")
cmd.ActiveConnection = Connect
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "sp_listTopicsByUser"
cmd.Parameters.Append cmd.CreateParameter("id", adVarChar, adParamInput, 4, Trim(Session("userid")))
cmd.Parameters.Append cmd.CreateParameter("lastvisit", adDate, adParamInput, 8, CDate(Session("lastVisit")))
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open cmd, , adOpenStatic, adLockOptimistic
```

När jag kör sidan får jag följande felmeddelande:

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
\[Microsoft\]\[ODBC SQL Server Driver\]Optional feature not implemented
/members/default.asp, line 282

Någon som vet vad som är fel.

Permalänk: https://www.webforum.nu/p/12556

## #2 — emission, 2001-11-07T21:07Z

Har du inkluderat adovbs.inc?

Permalänk: https://www.webforum.nu/p/294150

## #3 — Andy, 2001-11-07T21:40Z

Japp!

Permalänk: https://www.webforum.nu/p/294151

## #4 — LarsG, 2001-11-07T21:55Z

Om du vill att id och lastvisit skall vara inparametrar så

```
CREATE PROCEDURE sp_listTopicsByUser @id int,
@lastvisit datetime
as 
SELECT ID AS ID, Title AS Title, [Date] AS Date,
(SELECT COUNT(*)
FROM tablePosts
WHERE BelongsToTopic = tt.ID) AS Replies,
(SELECT COUNT(*)
FROM tablePosts
WHERE (BelongsToTopic = tt.ID AND Date > @lastvisit)) AS NewReplies
FROM tableTopics tt
WHERE (Poster = @id)
ORDER BY [Date] DESC
GO
```

Själva anropet skulle jag skriva så här

```
Set cmd = Server.CreateObject("ADODB.Command")
cmd.ActiveConnection = Connect
cmd.CommandType = adCmdText
cmd.CommandText = "sp_listTopicsByUser '" & trim(Session("userid"))
 & "','" & Session("lastVisit") & "'"
set rs = cmd.execute
```

Permalänk: https://www.webforum.nu/p/294152

## #5 — Andy, 2001-11-09T12:15Z

Tack! Fungerade perfekt. Och det var ju ett betydligt smidigare sätt att anropa en store procedure på...

Permalänk: https://www.webforum.nu/p/294153

## #6 — LarsG, 2001-11-09T12:52Z

Att använda metoden med parametrar till ett command-objekt har man mest nytta av om man vill göra flera anrop till samma procedure. I det fallet så behöver man bara sätta nya värden på parametrarna och om databasen har en vettig hantering så skall man slippa omkompilering av sql-frågan vilket innebär en prestandavinst.

Permalänk: https://www.webforum.nu/p/294154

---

Tråden på webben: https://www.webforum.nu/amne/asp/12556-stored-procedure-problem
