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 / 25542 < prev    next >
Text File  |  2010-06-15  |  5KB  |  160 lines

  1. CREATE PROCEDURE [dbo].[ISA_spUrlfMetadata] 
  2. AS
  3. BEGIN
  4.     SET NOCOUNT ON;
  5.     BEGIN TRY -- we want to disable OA_procs on exit
  6.  
  7.     EXEC sp_configure 'show advanced options', 1;
  8.     RECONFIGURE WITH OVERRIDE
  9.     EXEC sp_configure 'Ole Automation Procedures', 1;
  10.     RECONFIGURE WITH OVERRIDE
  11.  
  12.     DECLARE @Object int;
  13.     DECLARE @HR int;
  14.     DECLARE @Count int;
  15.     DECLARE @UrlfEnabled int;
  16.     DECLARE @Source nvarchar(255), @Desc nvarchar(255);
  17.     DECLARE @ArrayOrEnterprise int, @Array int;
  18.     DECLARE @ConfigurationMode int;
  19.  
  20.     EXEC @HR = sp_OACreate N'FPC.Root', @Object OUT;
  21.     IF @HR <> 0
  22.         GOTO CLEANUP
  23.  
  24.     EXEC @HR = sp_OAMethod @Object, N'ConnectToLocalStorage';
  25.  
  26.     EXEC @HR = sp_OAGetProperty @Object, N'ConfigurationMode', @ConfigurationMode OUT;
  27.     IF @HR <> 0
  28.         GOTO CLEANUP
  29.  
  30.     EXEC @HR = sp_OAMethod @Object, N'GetContainingArray', @Array OUT
  31.     IF @HR <> 0
  32.         GOTO CLEANUP
  33.  
  34.     EXEC @HR = sp_OAGetProperty @Array, N'ArrayPolicy.WebProxy.UrlFilteringSettings.Enabled', @UrlfEnabled OUT;
  35.     IF @HR <> 0 
  36.         GOTO CLEANUP
  37.  
  38.     IF OBJECT_ID ('tblUrlfTelemtryConfig', 'u') IS NULL
  39.     BEGIN
  40.         CREATE TABLE [dbo].[tblUrlfTelemtryConfig]
  41.         (
  42.             [NthUrl] [int] NULL,
  43.             [TelemtryEnabled] [int] NULL
  44.         ) ON [PRIMARY]
  45.         
  46.         INSERT INTO [dbo].[tblUrlfTelemtryConfig] ([NthUrl], [TelemtryEnabled]) VALUES (1000, 0)
  47.     END
  48.  
  49.     IF (@UrlfEnabled = 1)
  50.     BEGIN
  51.         UPDATE [dbo].[tblUrlfTelemtryConfig] SET [TelemtryEnabled] = 1
  52.     END
  53.  
  54.     IF (@ConfigurationMode = 1)
  55.     BEGIN
  56.        EXEC @HR = sp_OAGetProperty @Object, N'Enterprise', @ArrayOrEnterprise OUT
  57.     END
  58.     ELSE
  59.     BEGIN
  60.         EXEC @HR = sp_OAMethod @Object, N'GetContainingArray', @ArrayOrEnterprise OUT
  61.     END
  62.     IF @HR <> 0
  63.        GOTO CLEANUP
  64.  
  65.  
  66.     EXEC @HR = sp_OAGetProperty @ArrayOrEnterprise, N'RuleElements.UrlCategories.Count', @Count OUT;
  67.     IF @HR <> 0 
  68.         GOTO CLEANUP
  69.  
  70.     IF OBJECT_ID ('tblUrlfMetadata', 'u') IS NOT NULL
  71.         DROP TABLE dbo.tblUrlfMetadata
  72.         
  73.     CREATE TABLE [dbo].[tblUrlfMetadata](
  74.         [UrlCategoryName] [nvarchar](255) NULL,
  75.         [UrlCategoryId] [int] NULL
  76.         ) ON [PRIMARY]
  77.  
  78.     DECLARE @CategoryPath nvarchar(100);
  79.     DECLARE @CatNameProperty nvarchar(255);
  80.     DECLARE @CatIdProperty int;
  81.     DECLARE @i int
  82.     SET @i = 1
  83.  
  84.     WHILE (@i <= @Count)
  85.     BEGIN
  86.         SET @CategoryPath = N'RuleElements.UrlCategories(' + CONVERT(nvarchar(5), @i) + N').Name'
  87.         EXEC @HR = sp_OAGetProperty @ArrayOrEnterprise, @CategoryPath , @CatNameProperty OUT;
  88.         IF @HR <> 0 
  89.             GOTO CLEANUP
  90.  
  91.         SET @CategoryPath = N'RuleElements.UrlCategories(' + CONVERT(nvarchar(5), @i) + N').CategoryId'
  92.         EXEC @HR = sp_OAGetProperty @ArrayOrEnterprise, @CategoryPath, @CatIdProperty OUT;
  93.         IF @HR <> 0 
  94.             GOTO CLEANUP
  95.  
  96.         PRINT 'Read From COM (URLCategory,ID) : ' + @CatNameProperty + ' , ' 
  97.         PRINT @CatIdProperty
  98.  
  99.         INSERT INTO dbo.tblUrlfMetadata ([UrlCategoryName],[UrlCategoryId])
  100.         VALUES (@CatNameProperty, @CatIdProperty)
  101.  
  102.         SET @i = @i + 1
  103.     END
  104.  
  105.     CLEANUP:
  106.     -- Check whether an error occurred.
  107.     IF @HR <> 0
  108.     BEGIN
  109.         -- Report the error.
  110.         EXEC sp_OAGetErrorInfo @Object,
  111.             @Source OUT,
  112.             @Desc OUT;
  113.         PRINT 'Error: HR          = ' 
  114.         PRINT convert(varbinary(4),@HR)
  115.         PRINT 'Error: Source      = ' + @Source
  116.         PRINT 'Error: Description = ' + @Desc
  117.     END
  118.  
  119.     EXEC @Count = sp_OADestroy @Object;
  120.  
  121.     EXEC sp_configure 'Ole Automation Procedures', 0;
  122.     RECONFIGURE WITH OVERRIDE
  123.     EXEC sp_configure 'show advanced options', 0;
  124.     RECONFIGURE WITH OVERRIDE
  125.  
  126.     END TRY 
  127.  
  128.     BEGIN CATCH
  129.         EXEC sp_configure 'Ole Automation Procedures', 0;
  130.         RECONFIGURE WITH OVERRIDE
  131.         EXEC sp_configure 'show advanced options', 0;
  132.         RECONFIGURE WITH OVERRIDE
  133.         PRINT ERROR_MESSAGE() 
  134.         DECLARE 
  135.             @ErrorMessage    NVARCHAR(4000),
  136.             @ErrorNumber     INT,
  137.             @ErrorSeverity   INT,
  138.             @ErrorState      INT,
  139.             @ErrorLine       INT,
  140.             @ErrorProcedure  NVARCHAR(200);
  141.  
  142.         SELECT
  143.             @ErrorMessage = ERROR_MESSAGE(),
  144.             @ErrorNumber = ERROR_NUMBER(),
  145.             @ErrorSeverity = ERROR_SEVERITY(),
  146.             @ErrorState = ERROR_STATE(),
  147.             @ErrorLine = ERROR_LINE(),
  148.             @ErrorProcedure = ISNULL(ERROR_PROCEDURE(), '-');
  149.  
  150.         RAISERROR (@ErrorMessage, @ErrorSeverity, 1, @ErrorNumber, @ErrorSeverity, @ErrorState, @ErrorProcedure, @ErrorLine);
  151.     END CATCH
  152.  
  153.     IF @HR <> 0
  154.     BEGIN
  155.         SET @Desc = @Desc + ' , HR returned = ' + CONVERT(varchar(50),@HR)
  156.         RAISERROR (@Desc,10,1)
  157.         SET @HR = 1/0
  158.     END
  159. END
  160.