All pastes #190744 Raw Edit

Shin-Ra

public sql v1 · immutable
·published 2006-10-04 08:46 UTC
rendered paste body
SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author:		Keith Rusler-- Create date: October 4, 2006-- Description:	-- =============================================CREATE PROCEDURE PageLoad(@SessionID nvarchar,@Username varchar,@IP nvarchar,@Location nvarchar,@Browser nvarchar,@Platform nvarchar,@ForumID int = NULL,@CategoryID int = NULL,@TopicID int = NULL,@MessageID int = NULL)ASBEGIN	DECLARE @UserID int	DECLARE @IsGuest tinyint	DECLARE @RowCount int	DECLARE @PreviousVisit datetime	IF @Username = NULL OR @User = ''	BEGIN		SELECT 			@UserID = a.UserID 		FROM 			Users a, UserGroups b, Groups c, 		WHERE 			a.UserID = b.UserID AND b.GroupID = c.GroupID <> 0	END ELSE	BEGIN		SELECT 			@UserID = UserID 		FROM 			Users 		WHERE 			Username = @Username		SET 			@IsGuest = 0	END		IF @ForumID IS NOT NULL AND NOT EXISTS (SELECT 1 FROM Forum WHERE ForumID = @ForumID)		BEGIN			SET @ForumID = NULL		END		IF @CategoryID IS NOT NULL AND NOT EXISTS (SELECT 1 FROM Category WHERE CategoryID = @CategoryID)		BEGIN			SET @CategoryID = NULL		END		IF @TopicID IS NOT NULL AND NOT EXISTS (SELECT 1 FROM Topic WHERE TopicID = @FTopicID)		BEGIN			SET @TopicID = NULL		END		IF @MessageID IS NOT NULL AND NOT EXISTS (SELECT 1 FROM Message WHERE MessageID = @MessageID)		BEGIN			SET @MessageID = NULL		END		IF @IsGuest = 0		BEGIN			SELECT 				@PreviousVisit = LastVisit 			FROM 				Users 			WHERE 				UserID = @UserID		END				UPDATE 			Users		SET 			LastVisit = getdate(),			IP = @IP		WHERE 			UserID = @UserID				IF @MessageID IS NOT NULL		BEGIN			SELECT				@CategoryID = c.CategoryID,				@ForumID = b.ForumID,				@TopicID = b.TopicID			FROM				Message a,				Topic b,				Forum c,				Category d			WHERE				a.MessageID = @MessageID AND				b.TopicID = @TopicID AND				c.ForumID = @ForumID AND				d.CategoryID = @CategoryID		END		ELSE IF @TopicID IS NOT NULL		BEGIN			SELECT				@CategoryID = b.CategoryID				@ForumID = a.ForumID			FROM				Topic a,				Forum b,				Category c			WHERE				a.TopicID = @TopicID AND				b.ForumID = @ForumID AND				c.CategoryID = @CategoryID		END				IF @UserID IS NOT NULL		BEGIN			IF EXISTS(SELECT 1 FROM Active WHERE SessionID = @SessionID)			BEGIN				UPDATE					Active				SET					UserID = @UserID,					IP = @IP,					LastActive = getdate(),					Location = @Location,					ForumID = @ForumID,					TopicID = @TopicID,					Browser = @BrowserID,					Platform = @Platform				WHERE					SessionID = @SessionID			END			ELSE BEGIN				INSERT INTO					Active(SessionID, UserID, IP, Login, LastActive, Location, ForumID, TopicID, Browser, Platform)				VALUES(@SessionID, @UserID, @IP, getdate(), getdate(), @Location, @ForumID, @TopicID, @Browser, @Platform)			END			IF @IsGuest = 0				DELETE FROM					Active				WHERE					UserID = @UserID AND					SessionID <> SessionID			END		END		SELECT			a.UserID,			Username = a.Username,			Suspended = a.Suspended,			TimeZone = a.TimeZone,			LastLogin = @PreviousVisit,			CategoryID = @CategoryID,			CategoryName = (SELECT CategoryName, FROM Category WHERE CategoryID = @CategoryID),			ForumID = @ForumID,			ForumName = (SELECT ForumName, FROM Forum WHERE ForumID = @ForumID),			TopicID = @TopicID,			TopicName = (SELECT TopicName, FROM Topic WHERE TopicID = @TopicID),		FROM			User a		WHERE			a.UserID = @UserIDENDGO