home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
moodle.waes.ac.uk
/
moodle.waes.ac.uk.zip
/
moodle.waes.ac.uk
/
TMG
/
SP1-TMG-KB981324-AMD64-ENU.msp
/
PCW_CAB_SHFx2
/
F2143_msfpcui.dll
/
BINARY
/
25570
< prev
next >
Wrap
Text File
|
2010-06-15
|
6KB
|
142 lines
CREATE PROCEDURE [dbo].[ISA_spIpsMetadata]
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY -- we want to disable OA_procs on exit
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE WITH OVERRIDE
EXEC sp_configure 'Ole Automation Procedures', 1;
RECONFIGURE WITH OVERRIDE
DECLARE @Object int, @CurrServer int, @IPSSignatureSet int;
DECLARE @IPSMajorVersion int, @IPSMinorVersion int;
DECLARE @Count int;
DECLARE @HR int, @HR1 int;
DECLARE @Source nvarchar(255), @Desc nvarchar(255);
EXEC @HR = sp_OACreate N'FPC.Root', @Object OUT;
IF @HR <> 0
GOTO CLEANUP
EXEC @HR = sp_OAMethod @Object, N'ConnectToLocalStorage';
EXEC @HR = sp_OAMethod @Object, N'GetContainingServer', @CurrServer OUT;
IF @HR <> 0
GOTO CLEANUP
EXEC @HR = sp_OAGetProperty @CurrServer, N'NisSignatureSet', @IPSSignatureSet OUT;
IF @HR <> 0
GOTO CLEANUP
-- verify if needs update
EXEC @HR = sp_OAGetProperty @IPSSignatureSet, N'majorVersion', @IPSMajorVersion OUT;
IF @HR <> 0
GOTO CLEANUP
EXEC @HR = sp_OAGetProperty @IPSSignatureSet, N'minorVersion', @IPSMinorVersion OUT;
IF @HR <> 0
GOTO CLEANUP
IF OBJECT_ID ('tblIpsMetadataVersion', 'u') IS NULL
BEGIN
CREATE TABLE [dbo].[tblIpsMetadataVersion]
(
[MajorVersion] int NULL,
[MinorVersion] int NULL
) ON [PRIMARY]
INSERT INTO [dbo].[tblIpsMetadataVersion]
([MajorVersion],[MinorVersion])
VALUES (-1,-1)
END
DECLARE @MetadataMajorVersion int, @MetadataMinorVersion int;
SET @MetadataMajorVersion = (SELECT [MajorVersion] FROM [tblIpsMetadataVersion])
SET @MetadataMinorVersion = (SELECT [MinorVersion] FROM [tblIpsMetadataVersion])
IF (@MetadataMajorVersion = @IPSMajorVersion) AND (@MetadataMinorVersion = @IPSMinorVersion)
BEGIN
PRINT 'Identical versions. No need to update'
RETURN
END
-- update
UPDATE [dbo].[tblIpsMetadataVersion] SET [MajorVersion] = 0, [MinorVersion] = 0
IF OBJECT_ID ('tblIpsMetadata', 'u') IS NOT NULL
DROP TABLE dbo.tblIpsMetadata
CREATE TABLE [dbo].[tblIpsMetadata](
[SignatureName] [nvarchar](4000) NULL,
[SignatureDescription] [nvarchar] (4000) NULL,
[SignatureUrl] [nvarchar] (4000) NULL,
[SignatureProtocol] [nvarchar] (4000) NULL
) ON [PRIMARY]
EXEC @HR = sp_OAGetProperty @IPSSignatureSet, N'Signatures.Count', @Count OUT;
IF @HR <> 0
GOTO CLEANUP
DECLARE @SignatureNameProperty nvarchar(4000);
DECLARE @SignatureDescriptionProperty nvarchar(4000);
DECLARE @SignatureUrlProperty nvarchar(4000);
DECLARE @SignatureProtocolProperty nvarchar(4000);
DECLARE @PropertyPath nvarchar(100);
DECLARE @i int;
SET @i=1
WHILE (@i<=@Count)
BEGIN
SET @PropertyPath= N'Signatures(' + CONVERT(nvarchar(5), @i) + N').Name'
EXEC @HR = sp_OAGetProperty @IPSSignatureSet, @PropertyPath , @SignatureNameProperty OUT;
IF @HR <> 0
GOTO CLEANUP
SET @PropertyPath= N'Signatures(' + CONVERT(nvarchar(5), @i) + N').Description'
EXEC @HR = sp_OAGetProperty @IPSSignatureSet, @PropertyPath , @SignatureDescriptionProperty OUT;
IF @HR <> 0
GOTO CLEANUP
SET @PropertyPath= N'Signatures(' + CONVERT(nvarchar(5), @i) + N').URL'
EXEC @HR = sp_OAGetProperty @IPSSignatureSet, @PropertyPath , @SignatureUrlProperty OUT;
IF @HR <> 0
GOTO CLEANUP
SET @PropertyPath= N'Signatures(' + CONVERT(nvarchar(5), @i) + N').Protocol'
EXEC @HR = sp_OAGetProperty @IPSSignatureSet, @PropertyPath , @SignatureProtocolProperty OUT;
IF @HR <> 0
GOTO CLEANUP
INSERT INTO [dbo].[tblIpsMetadata] ([SignatureName],[SignatureDescription],[SignatureUrl],[SignatureProtocol])
VALUES (@SignatureNameProperty, @SignatureDescriptionProperty, @SignatureUrlProperty, @SignatureProtocolProperty)
SET @i=@i+1
END
UPDATE [dbo].[tblIpsMetadataVersion] SET [MajorVersion] = @IPSMajorVersion, [MinorVersion] = @IPSMinorVersion
CLEANUP:
-- Check whether an error occurred.
IF @HR <> 0
BEGIN
-- Report the error.
EXEC sp_OAGetErrorInfo @Object,
@Source OUT,
@Desc OUT;
PRINT 'Error: HR = '
PRINT convert(varbinary(4),@HR)
PRINT 'Error: Source = ' + @Source
PRINT 'Error: Description = ' + @Desc
END
EXEC @HR1 = sp_OADestroy @Object;
EXEC sp_configure 'Ole Automation Procedures', 0;
RECONFIGURE WITH OVERRIDE
EXEC sp_configure 'show advanced options', 0;
RECONFIGURE WITH OVERRIDE
END TRY
BEGIN CATCH
EXEC sp_configure 'Ole Automation Procedures', 0;
RECONFIGURE WITH OVERRIDE
EXEC sp_configure 'show advanced options', 0;
RECONFIGURE WITH OVERRIDE
PRINT ERROR_MESSAGE()
DECLARE
@ErrorMessage NVARCHAR(4000),
@ErrorNumber INT,
@ErrorSeverity INT,
@ErrorState INT,
@ErrorLine INT,
@ErrorProcedure NVARCHAR(200);
SELECT
@ErrorMessage = ERROR_MESSAGE(),
@ErrorNumber = ERROR_NUMBER(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE(),
@ErrorLine = ERROR_LINE(),
@ErrorProcedure = ISNULL(ERROR_PROCEDURE(), '-');
RAISERROR (@ErrorMessage, @ErrorSeverity, 1, @ErrorNumber, @ErrorSeverity, @ErrorState, @ErrorProcedure, @ErrorLine);
END CATCH
IF @HR <> 0
BEGIN
SET @Desc = @Desc + ' , HR returned = ' + CONVERT(varchar(50),@HR)
RAISERROR (@Desc,10,1)
SET @HR = 1/0
END
END