Okay, I've spent the last day working on moving our SQL 2000 to SQL 2005 data over. My last step was to test our web application. Well, no one could login. I am using a stored procedure and have narrowed it down to it. What's happening is that I am passing 3 strings and of course comparing them to the DB. Well, I had it return the values passed and they would all be truncated to 1 char long even though I have them as varchar(15).
Here's my test SP:
/****** Object: Stored Procedure dbo.Login Script Date: 3/27/01 2:35:01 PM ******/
CREATE PROCEDURE TESTLogin
@arg_strUsernam e nvarchar(15) = NULL,
@arg_strPasswor d nvarchar(15) = NULL,
@arg_strDirecti ngURL nvarchar(255) = NULL
AS
SET NOCOUNT ON
DECLARE @intUserID int
DECLARE @intPrivilegeID int
DECLARE @intPartnerID int
DECLARE @strPartnerName varchar(40)
DECLARE @strPassword varchar(15)
DECLARE @strDirectingUR L varchar(255)
SELECT @strPassword = l.Password, @intUserID = l.UserID, @intPrivilegeID = u.PrivilegeID
FROM Logon l
JOIN Users u ON u.UserID = l.UserID
WHERE l.Username = @arg_strUsernam e
IF @strPassword = @arg_strPasswor d
BEGIN
IF @intPrivilegeID = 1
BEGIN
SELECT @intPartnerID = NULL, @strPartnerName = NULL, @strDirectingUR L = DirectingURL
FROM Users
WHERE UserID = @intUserID
SELECT @intUserID AS UserID, @arg_strUsernam e As UserName, @arg_strPasswor d As Password, @arg_strDirecti ngURL As UDURL, @strDirectingUR L As DURL
END
IF @arg_strDirecti ngURL LIKE @strDirectingUR L
BEGIN
UPDATE Users
SET LastLoginDate = GETDATE()
WHERE UserID = @intUserID
SELECT @intUserID AS UserID, @intPrivilegeID AS PrivilegeID, @intPartnerID AS PartnerID, @strPartnerName AS PartnerName
END
END
ELSE
BEGIN
SELECT @arg_strUsernam e, @arg_strPasswor d As INPass, @arg_strDirecti ngURL As INURL
END
Here's my test SP:
/****** Object: Stored Procedure dbo.Login Script Date: 3/27/01 2:35:01 PM ******/
CREATE PROCEDURE TESTLogin
@arg_strUsernam e nvarchar(15) = NULL,
@arg_strPasswor d nvarchar(15) = NULL,
@arg_strDirecti ngURL nvarchar(255) = NULL
AS
SET NOCOUNT ON
DECLARE @intUserID int
DECLARE @intPrivilegeID int
DECLARE @intPartnerID int
DECLARE @strPartnerName varchar(40)
DECLARE @strPassword varchar(15)
DECLARE @strDirectingUR L varchar(255)
SELECT @strPassword = l.Password, @intUserID = l.UserID, @intPrivilegeID = u.PrivilegeID
FROM Logon l
JOIN Users u ON u.UserID = l.UserID
WHERE l.Username = @arg_strUsernam e
IF @strPassword = @arg_strPasswor d
BEGIN
IF @intPrivilegeID = 1
BEGIN
SELECT @intPartnerID = NULL, @strPartnerName = NULL, @strDirectingUR L = DirectingURL
FROM Users
WHERE UserID = @intUserID
SELECT @intUserID AS UserID, @arg_strUsernam e As UserName, @arg_strPasswor d As Password, @arg_strDirecti ngURL As UDURL, @strDirectingUR L As DURL
END
IF @arg_strDirecti ngURL LIKE @strDirectingUR L
BEGIN
UPDATE Users
SET LastLoginDate = GETDATE()
WHERE UserID = @intUserID
SELECT @intUserID AS UserID, @intPrivilegeID AS PrivilegeID, @intPartnerID AS PartnerID, @strPartnerName AS PartnerName
END
END
ELSE
BEGIN
SELECT @arg_strUsernam e, @arg_strPasswor d As INPass, @arg_strDirecti ngURL As INURL
END