webForumDet fria alternativet
Logga in / Bli medlem

Stored procedure-problem

ASP

5 svar · 215 visningar · startad av Andy

Medlem sedan sep. 2001138 inlägg
Trådstart#1

Får ett felmeddelande när jag anropar en stored procedure på en sida:

Error converting data type varchar to datetime.

/members/default.asp, line 281

Anropet ser ut så här:

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

Rad 279 är den sista, dvs: set rs = cmd.execute

Min store procedure ser ut så här:

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

Skriver jag ut cmd.CommandText-strängen med response.write får jag följande resultat:

sp_listTopicsByUser '1','27-11-2001 10:00:31'

Medlem sedan dec. 200012 464 inlägg
#2

Vilket datumformat har du specificerat för databasen?

Det finns ett sql-server kommando som heter

set dateformat

där man kan ange hur datumvärden skall tolkas. Default är att det tolkas som mdy dvs månad dag år.

set dateformat dmy

skulle då bli att man tolkar datum som dag månad år.

Medlem sedan sep. 2001138 inlägg
#3

Det fixade sig när jag lade in

Session.LCID = 1033

En fråga dock - var lägger jag in

set dateformat mdy

?

Får det inte att fungera med den kodsnutten, nämligen.

Medlem sedan dec. 200012 464 inlägg
#4

Då så, men annars så borde du kunna lägga till set i din procedur eller så

cmd.CommandText = "set dateformat dmy exec sp_listTopicsByUser '" & trim(Session("userid")) & "','" & CDate(Session("lastVisit")) & "'"
Medlem sedan sep. 2001138 inlägg
#5

Man kan inte lägga till set dateformat så att det gäller på hela siten? Jag har ju en includefil som förekommer på alla sidor på siten. Det går inte att lägga in där på något sätt?

Medlem sedan dec. 200012 464 inlägg
#6

Jo, det borde bli ok. Så vitt jag förstår så gäller det tillsvidare inom sessionen.

Sen så går det nog också att bestämma per databas. Det hänger nog ihop med vilket språk man har valt, men det är inget som jag har tittat på.

387 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
118 ms — deklarationer (db)
125 ms — hämta statistik (db)
132 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)