Glöm det... löste det själv. Anropade fel SP... *skäms*
Men nu får jag det här felet:
Item cannot be found in the collection corresponding to the requested name or ordinal.
Raden den klagar på är denna:
intTotalReplies = rs("TotalPosts")
4 svar · 335 visningar · startad av Andy
Är ganska så färsk vad gäller stored procedures och skulle därför behöva lite hjälp.
Har en stored procedure som ser ut så här:
CREATE PROCEDURE sp_forumReplyToTopic
@intBelongsToTopic int,
@strText ntext,
@dteDate datetime,
@intPoster int,
@strShowSignature varchar(10),
@strIP varchar(50),
@intBelongsInForum int
AS
/* Add reply to database */
INSERT INTO tablePosts (BelongsToTopic, Text, Date, Poster, ShowSignature, IP)
VALUES (@intBelongsToTopic, @strText, @dteDate, @intPoster, @strShowSignature, @strIP)
/* Update topic with info about latest reply and latest poster */
UPDATE tableTopics
SET LatestReplyDate = @dteDate, LatestReplyPoster = @intPoster
WHERE ID = @intBelongsToTopic
/* Update forum with info about latest reply and latest poster */
UPDATE tableForums
SET LatestPostDate = @dteDate, LatestPostPoster = @intPoster
WHERE ID = @intBelongsInForum
/* Get the total amounts of replies to this topic */
SELECT COUNT(*) AS TotalPosts FROM tablePosts WHERE BelongsToTopic = @intBelongsToTopic
GO
SPn tar emot ett gäng parametrar och uppdaterar databasen. Jag vill även att den skall returnera ett värde (TotalPosts).
Jag anropar SPn så här:
Set rs = Server.CreateObject("ADODB.Recordset")
SQLSQuery = "EXEC sp_forumAddNewTopic " &_
"@intBelongsToTopic=" & BelongsToTopic & ", " &_
"@strText='" & Text & "', " &_
"@dteDate='" & theDate & "', " &_
"@intPoster=" & PosterID & ", " &_
"@strShowSignature='" & ShowSignature & "', " &_
"@strIP='" & Request.ServerVariables("REMOTE_ADDR") & "', " &_
"@intBelongsInForum=" & BelongsInForum
Connect.Execute(SQLSQuery)
intTotalReplies = rs("TotalPosts")
rs.Close
Set rs = nothing
Men när jag exekverar koden får jag detta felmeddelande:
@intBelongsToTopic is not a parameter for procedure sp_forumAddNewTopic.
Om jag skriver ut strängen SQLQuery ser den ut så här:
[kod]
EXEC sp_forumAddNewTopic @intBelongsToTopic=6, @strText='test', @dteDate='3/22/2003 2:14:06 AM', @intPoster=1, @strShowSignature='yes', @strIP='127.0.0.1', @intBelongsInForum=6
Glöm det... löste det själv. Anropade fel SP... *skäms*
Men nu får jag det här felet:
Item cannot be found in the collection corresponding to the requested name or ordinal.
Raden den klagar på är denna:
intTotalReplies = rs("TotalPosts")
Får samma felmeddelande ändå...
Jag är inte alls säker på att jag exekverar SPn på rätt sätt, och att jag använder mitt recordset på rätt sätt...
Om jag exekverar SPn i SQL Query Analyzer så fungerar allt som det är tänkt.
Löst. Ändrade ASP-koden till detta:
SQLSQuery = "EXEC sp_forumReplyToTopic " &_
"@strText='" & Text & "', " &_
"@intBelongsToTopic=" & BelongsToTopic & ", " &_
"@dteDate='" & theDate & "', " &_
"@intPoster=" & PosterID & ", " &_
"@strShowSignature='" & ShowSignature & "', " &_
"@strIP='" & Request.ServerVariables("REMOTE_ADDR") & "', " &_
"@intBelongsInForum=" & BelongsInForum
set rs = Connect.Execute(SQLSQuery)
intTotalReplies = rs(0)
rs.Close
Set rs = nothing