Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

109 lines
3.2 KiB

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[MSSolution]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[MSSolution]
GO
CREATE TABLE [dbo].[MSSolution] (
[MSSolutionID] [int] NOT NULL ,
[SolutionProvider] [nvarchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[SolutionText] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[LastUpdated] [smalldatetime] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[MSSolution] WITH NOCHECK ADD
CONSTRAINT [PK_MSSolution] PRIMARY KEY CLUSTERED
(
[MSSolutionID]
) ON [PRIMARY]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SEP_BuildKBString]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[SEP_BuildKBString]
GO
CREATE PROCEDURE SEP_BuildKBString( @Desc nvarchar(1024), @FinalKB nvarchar(100) OUTPUT ) AS
--DECLARE @Desc nvarchar(1024)
--select top 100 percent * from SolutionEx
DECLARE @Counter int
--DECLARE @FinalKB nvarchar(100)
SET @Counter = 1
SET @FinalKB = ''
WHILE @Counter != LEN( @Desc )
BEGIN
IF( SUBSTRING( @Desc, @Counter, 4) = '<KB>' )
BEGIN
SET @Counter = @Counter + 4
SET @FinalKB = @FinalKB + ' ' + SUBSTRING( @Desc, @Counter, 6 ) + CHAR(13) + CHAR(10)
SET @Counter = @Counter + 11
END
ELSE
BEGIN
print 'no kb'
BREAK
END
END
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SEP_BuildOEMSolutions]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[SEP_BuildOEMSolutions]
GO
CREATE Procedure SEP_BuildOEMSolutions( ) as
USE Solutions
DECLARE @Desc nvarchar(1000)
DECLARE @KBString nvarchar(1000)
DECLARE @szTemplate nvarchar(4000)
DECLARE @szModule nvarchar(100)
DECLARE @szContact nvarchar(100)
DECLARE @SolutionID INT
DECLARE SolCursor CURSOR FOR
select SolutionID from SolutionEx order by solutionID
OPEN SolCursor
FETCH NEXT FROM SolCursor INTO @SolutionID
WHILE @@FETCH_STATUS = 0
BEGIN
IF NOT EXISTS ( SELECT MSSolutionID from MSSolution where MSSolutionID=@SolutionID )
BEGIN
SELECT @Desc = Description from SolutionEx where SolutionID = @SolutionID
SELECT @szModule = ModuleName from Modules where ModuleID = (SELECT ModuleID from SolutionEX where SolutionID = @SolutionID )
SELECT @szContact = CompanyName from Contacts where ContactID = (SELECT ContactID from SolutionEX where SolutionID = @SolutionID )
SELECT @szTemplate = Description from templates where TemplateID = (SELECT TemplateID from SolutionEX where SolutionID = @SolutionID )
SELECT @szTemplate = REPLACE ( @szTemplate, '<BR>', CHAR(13) )
SELECT @szTemplate = REPLACE ( @szTemplate, '<CONTACT></CONTACT>', @szContact )
SELECT @szTemplate = REPLACE ( @szTemplate, '<MODULE></MODULE>', @szModule )
EXEC SEP_BuildKBString @Desc, @KBString OUTPUT
SET @szTemplate = @szTemplate + CHAR(13) + 'KB Articles: ' + @KBString
SELECT @szTemplate as newTEmplate, @SolutionID as SolutionID
INSERT INTO MSSolution (MSSolutionID, SolutionProvider, SolutionText, LastUpdated ) VALUES
( @SolutionID, 'Microsoft', @szTemplate, GETDATE() )
END
FETCH NEXT FROM SolCursor INTO @SolutionID
END
CLOSE SolCursor
DEALLOCATE SolCursor
GO