Stored Procedure - Conversion failed when converting datetime from charact...

Tags:    databaser

Da jeg er total novice på Stored Procedure området, har jeg har et problem med at få skrevet en dato.
Mit ASP-script, der ser således ud:

<%
...
set objConn = CreateObject("ADODB.Connection")
objConn.open dbconn 'ConnectionString
sql = "EXEC usp_ListUsers @sortparm='" & sortby & "'"
set rs = objConn.EXECUTE(sql) 'line 11

response.write rs("userRegistrationDate")
%>

...og min Stored Procedure (MSSQL 2005) ser således ud:

-------------------------------------------
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[usp_ListUsers]
@SortParm varchar(50)
AS
BEGIN
SET NOCOUNT ON;
SELECT userID, userName, userCompany,
userCity, countryName,
usertypName,userRegistrationDate
FROM tblUsers INNER JOIN
tblUserType ON userType_FK = usertypID
INNER JOIN
tblCountry ON userCountry_FK = countryID
ORDER BY
CASE
WHEN @SortParm='Company' THEN userCompany
WHEN @SortParm='Name' THEN userName
WHEN @SortParm='City' THEN userCity
WHEN @SortParm='Type' THEN usertypName
WHEN @SortParm='RegDate' THEN userRegistrationDate
WHEN @SortParm='Country' THEN countryName
END
END
----------------------------------------

Hver gang jeg kører ASP-scriptet får jeg følgende fejl:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Conversion failed when converting datetime from character string.
/ManageUsers.asp, line 11

Dropper jeg datofeltet, og skriver alle andre felter ud, er der ingen problemer.

Håber at én eller anden kan hjælpe mig videre.
Pfh. tak.

PS. Jeg er også ny på udvikleren.dk, så jeg er ikke helt klar over, hvordan det med point fungerer.



Indlæg senest redigeret d. 23.09.2009 13:18 af Bruger #15326
Du sender et tomt værdi med ned til din Store Procedure, men tager ikke højde for det i din case at der er en tom værdi. Betyder dette ikke at din sql kommer til at se nogenlunde sådan her ud:

..ORDER BY (og her kommer ingenting, da du ikke håndtere blank)

Så får du en ulovlig syntax exception fra din driver...



t