stored procedure problem
Hi,
i have the following sp.
it checks the user pass and username
whenever a user logss in the logins(integer) field which is set to increment 1 login increments 3 times instead of once
for ex.user has 10 logins when he loggs again logins will become 13
how is that?
the problem is with this line:
UPDATE Users SET Last_Login = GetDate(), logins = logins + 1 WHERE UserName = @UserName
CREATE PROCEDURE ValidateUser
@UserName nvarchar(32) = NULL,
@Password nvarchar(100) = NULL,
@IPAddress varchar(16) = NULL,
@Valid int = NULL OUTPUT,
@userID int = Null OUTPUT,
@firstname nvarchar(100) = Null OUTPUT
AS
SET NOCOUNT ON
DECLARE @Check int
DECLARE @Check2 int
-- Assume success
SET @Valid = 1
-- Validate input parameters
IF @UserName IS NULL
SET @Valid = 0
IF @Password IS NULL
SET @Valid = 0
-- Bail on invalid inputs
IF @Valid = 0
RETURN
-- Check UserName and Password
SELECT @Check = COUNT(*) FROM Users
WHERE UserName = @UserName AND Password = @Password And UserStatus=1
SELECT @Check2 = COUNT(*) FROM Blocked WHERE blocked_IP = @IPAddress
IF @Check2 = 1
BEGIN
SET @Valid = 2
RETURN
END
select @UserID = userid fromUsers WHERE UserName = @Username
UPDATE Users SET Last_Login = GetDate(), logins = logins + 1 WHERE UserName = @UserName
-- Assign return value
SET @Valid = @Check
RETURN
GO
|