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 >
Text File  |  2010-06-15  |  6KB  |  142 lines

  1. CREATE PROCEDURE [dbo].[ISA_spIpsMetadata]
  2. AS
  3. BEGIN
  4.     SET NOCOUNT ON;
  5.     BEGIN TRY -- we want to disable OA_procs on exit
  6.     EXEC sp_configure 'show advanced options', 1;
  7.     RECONFIGURE WITH OVERRIDE
  8.     EXEC sp_configure 'Ole Automation Procedures', 1;
  9.     RECONFIGURE WITH OVERRIDE
  10.     DECLARE @Object int, @CurrServer int, @IPSSignatureSet int;
  11.     DECLARE @IPSMajorVersion int, @IPSMinorVersion int;
  12.     DECLARE @Count int;
  13.     DECLARE @HR int, @HR1 int;
  14.     DECLARE @Source nvarchar(255), @Desc nvarchar(255);
  15.     EXEC @HR = sp_OACreate N'FPC.Root', @Object OUT;
  16.     IF @HR <> 0
  17.         GOTO CLEANUP
  18.     EXEC @HR = sp_OAMethod @Object, N'ConnectToLocalStorage';
  19.     EXEC @HR = sp_OAMethod @Object, N'GetContainingServer', @CurrServer OUT;
  20.     IF @HR <> 0
  21.         GOTO CLEANUP
  22.     EXEC @HR = sp_OAGetProperty @CurrServer, N'NisSignatureSet', @IPSSignatureSet OUT;
  23.     IF @HR <> 0
  24.         GOTO CLEANUP
  25. -- verify if needs update
  26.     EXEC @HR = sp_OAGetProperty @IPSSignatureSet, N'majorVersion', @IPSMajorVersion OUT;
  27.     IF @HR <> 0
  28.         GOTO CLEANUP
  29.     EXEC @HR = sp_OAGetProperty @IPSSignatureSet, N'minorVersion', @IPSMinorVersion OUT;
  30.     IF @HR <> 0
  31.         GOTO CLEANUP
  32.     IF OBJECT_ID ('tblIpsMetadataVersion', 'u') IS NULL
  33.     BEGIN
  34.         CREATE TABLE [dbo].[tblIpsMetadataVersion]
  35.         (
  36.             [MajorVersion] int NULL,
  37.             [MinorVersion] int NULL
  38.         ) ON [PRIMARY]
  39.         INSERT INTO [dbo].[tblIpsMetadataVersion]
  40.             ([MajorVersion],[MinorVersion])
  41.             VALUES (-1,-1)
  42.     END
  43.     DECLARE @MetadataMajorVersion int, @MetadataMinorVersion int;
  44.     SET @MetadataMajorVersion = (SELECT [MajorVersion] FROM [tblIpsMetadataVersion])
  45.     SET @MetadataMinorVersion = (SELECT [MinorVersion] FROM [tblIpsMetadataVersion])
  46.     IF (@MetadataMajorVersion = @IPSMajorVersion) AND (@MetadataMinorVersion = @IPSMinorVersion)
  47.     BEGIN
  48.        PRINT 'Identical versions. No need to update'
  49.        RETURN
  50.     END
  51. -- update
  52.     UPDATE [dbo].[tblIpsMetadataVersion] SET [MajorVersion] = 0, [MinorVersion] = 0
  53.     IF OBJECT_ID ('tblIpsMetadata', 'u') IS NOT NULL
  54.     DROP TABLE dbo.tblIpsMetadata
  55.     CREATE TABLE [dbo].[tblIpsMetadata](
  56.         [SignatureName] [nvarchar](4000) NULL,
  57.         [SignatureDescription] [nvarchar] (4000) NULL,
  58.         [SignatureUrl] [nvarchar] (4000) NULL,
  59.         [SignatureProtocol] [nvarchar] (4000) NULL
  60.         ) ON [PRIMARY]
  61.     EXEC @HR = sp_OAGetProperty @IPSSignatureSet, N'Signatures.Count', @Count OUT;
  62.     IF @HR <> 0
  63.         GOTO CLEANUP
  64.     DECLARE @SignatureNameProperty nvarchar(4000);
  65.     DECLARE @SignatureDescriptionProperty nvarchar(4000);
  66.     DECLARE @SignatureUrlProperty nvarchar(4000);
  67.     DECLARE @SignatureProtocolProperty nvarchar(4000);
  68.     DECLARE @PropertyPath nvarchar(100);
  69.     DECLARE @i int;
  70.     SET @i=1
  71.     WHILE (@i<=@Count)
  72.     BEGIN
  73.         SET @PropertyPath= N'Signatures(' + CONVERT(nvarchar(5), @i) + N').Name'
  74.         EXEC @HR = sp_OAGetProperty @IPSSignatureSet, @PropertyPath , @SignatureNameProperty OUT;
  75.         IF @HR <> 0
  76.             GOTO CLEANUP
  77.         SET @PropertyPath= N'Signatures(' + CONVERT(nvarchar(5), @i) + N').Description'
  78.         EXEC @HR = sp_OAGetProperty @IPSSignatureSet, @PropertyPath , @SignatureDescriptionProperty OUT;
  79.         IF @HR <> 0
  80.             GOTO CLEANUP
  81.         SET @PropertyPath= N'Signatures(' + CONVERT(nvarchar(5), @i) + N').URL'
  82.         EXEC @HR = sp_OAGetProperty @IPSSignatureSet, @PropertyPath , @SignatureUrlProperty OUT;
  83.         IF @HR <> 0
  84.             GOTO CLEANUP
  85.         SET @PropertyPath= N'Signatures(' + CONVERT(nvarchar(5), @i) + N').Protocol'
  86.         EXEC @HR = sp_OAGetProperty @IPSSignatureSet, @PropertyPath , @SignatureProtocolProperty OUT;
  87.         IF @HR <> 0
  88.             GOTO CLEANUP
  89.         INSERT INTO [dbo].[tblIpsMetadata] ([SignatureName],[SignatureDescription],[SignatureUrl],[SignatureProtocol])
  90.         VALUES (@SignatureNameProperty, @SignatureDescriptionProperty, @SignatureUrlProperty, @SignatureProtocolProperty)
  91.         SET @i=@i+1
  92.     END
  93.     UPDATE [dbo].[tblIpsMetadataVersion] SET [MajorVersion] = @IPSMajorVersion, [MinorVersion] = @IPSMinorVersion
  94.     CLEANUP:
  95.     -- Check whether an error occurred.
  96.     IF @HR <> 0
  97.     BEGIN
  98.         -- Report the error.
  99.         EXEC sp_OAGetErrorInfo @Object,
  100.             @Source OUT,
  101.             @Desc OUT;
  102.         PRINT 'Error: HR          = '
  103.         PRINT convert(varbinary(4),@HR)
  104.         PRINT 'Error: Source      = ' + @Source
  105.         PRINT 'Error: Description = ' + @Desc
  106.     END
  107.     EXEC @HR1 = sp_OADestroy @Object;
  108.     EXEC sp_configure 'Ole Automation Procedures', 0;
  109.     RECONFIGURE WITH OVERRIDE
  110.     EXEC sp_configure 'show advanced options', 0;
  111.     RECONFIGURE WITH OVERRIDE
  112.     END TRY
  113.     BEGIN CATCH
  114.         EXEC sp_configure 'Ole Automation Procedures', 0;
  115.         RECONFIGURE WITH OVERRIDE
  116.         EXEC sp_configure 'show advanced options', 0;
  117.         RECONFIGURE WITH OVERRIDE
  118.         PRINT ERROR_MESSAGE()
  119.         DECLARE
  120.             @ErrorMessage    NVARCHAR(4000),
  121.             @ErrorNumber     INT,
  122.             @ErrorSeverity   INT,
  123.             @ErrorState      INT,
  124.             @ErrorLine       INT,
  125.             @ErrorProcedure  NVARCHAR(200);
  126.         SELECT
  127.             @ErrorMessage = ERROR_MESSAGE(),
  128.             @ErrorNumber = ERROR_NUMBER(),
  129.             @ErrorSeverity = ERROR_SEVERITY(),
  130.             @ErrorState = ERROR_STATE(),
  131.             @ErrorLine = ERROR_LINE(),
  132.             @ErrorProcedure = ISNULL(ERROR_PROCEDURE(), '-');
  133.         RAISERROR (@ErrorMessage, @ErrorSeverity, 1, @ErrorNumber, @ErrorSeverity, @ErrorState, @ErrorProcedure, @ErrorLine);
  134.     END CATCH
  135.     IF @HR <> 0
  136.     BEGIN
  137.         SET @Desc = @Desc + ' , HR returned = ' + CONVERT(varchar(50),@HR)
  138.         RAISERROR (@Desc,10,1)
  139.         SET @HR = 1/0
  140.     END
  141. END
  142.