131 lines
3.4 KiB
Transact-SQL
131 lines
3.4 KiB
Transact-SQL
USE [DD_ECM]
|
|
|
|
UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.9.7.8';
|
|
GO
|
|
IF NOT EXISTS(SELECT 1 FROM sys.columns
|
|
WHERE Name = N'LICENSE_VALID'
|
|
AND Object_ID = Object_ID(N'TBDD_MODULES'))
|
|
BEGIN
|
|
ALTER TABLE TBDD_MODULES
|
|
ADD LICENSE_VALID BIT NOT NULL
|
|
CONSTRAINT TBDD_MODULES_LICENSE_VALID_DEF DEFAULT 1
|
|
WITH VALUES
|
|
END
|
|
GO
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
CREATE OR ALTER FUNCTION [dbo].[FNDD_CONVERT_RTF2Text]
|
|
(
|
|
@rtf nvarchar(max)
|
|
)
|
|
RETURNS nvarchar(max)
|
|
AS
|
|
BEGIN
|
|
DECLARE @Pos1 int;
|
|
DECLARE @Pos2 int;
|
|
DECLARE @hex varchar(316);
|
|
DECLARE @Stage table
|
|
(
|
|
[Char] char(1),
|
|
[Pos] int
|
|
);
|
|
|
|
INSERT @Stage
|
|
(
|
|
[Char]
|
|
, [Pos]
|
|
)
|
|
SELECT SUBSTRING(@rtf, [Number], 1)
|
|
, [Number]
|
|
FROM [master]..[spt_values]
|
|
WHERE ([Type] = 'p')
|
|
AND (SUBSTRING(@rtf, Number, 1) IN ('{', '}'));
|
|
|
|
SELECT @Pos1 = MIN([Pos])
|
|
, @Pos2 = MAX([Pos])
|
|
FROM @Stage;
|
|
|
|
DELETE
|
|
FROM @Stage
|
|
WHERE ([Pos] IN (@Pos1, @Pos2));
|
|
|
|
WHILE (1 = 1)
|
|
BEGIN
|
|
SELECT TOP 1 @Pos1 = s1.[Pos]
|
|
, @Pos2 = s2.[Pos]
|
|
FROM @Stage s1
|
|
INNER JOIN @Stage s2 ON s2.[Pos] > s1.[Pos]
|
|
WHERE (s1.[Char] = '{')
|
|
AND (s2.[Char] = '}')
|
|
ORDER BY s2.[Pos] - s1.[Pos];
|
|
|
|
IF @@ROWCOUNT = 0
|
|
BREAK
|
|
|
|
DELETE
|
|
FROM @Stage
|
|
WHERE ([Pos] IN (@Pos1, @Pos2));
|
|
|
|
UPDATE @Stage
|
|
SET [Pos] = [Pos] - @Pos2 + @Pos1 - 1
|
|
WHERE ([Pos] > @Pos2);
|
|
|
|
SET @rtf = STUFF(@rtf, @Pos1, @Pos2 - @Pos1 + 1, '');
|
|
END
|
|
|
|
SET @rtf = REPLACE(@rtf, '\pard', '');
|
|
SET @rtf = REPLACE(@rtf, '\par', '');
|
|
SET @rtf = STUFF(@rtf, 1, CHARINDEX(' ', @rtf), '');
|
|
|
|
WHILE (Right(@rtf, 1) IN (' ', CHAR(13), CHAR(10), '}'))
|
|
BEGIN
|
|
SELECT @rtf = SUBSTRING(@rtf, 1, (LEN(@rtf + 'x') - 2));
|
|
IF LEN(@rtf) = 0 BREAK
|
|
END
|
|
|
|
SET @Pos1 = CHARINDEX('\''', @rtf);
|
|
|
|
WHILE @Pos1 > 0
|
|
BEGIN
|
|
IF @Pos1 > 0
|
|
BEGIN
|
|
SET @hex = '0x' + SUBSTRING(@rtf, @Pos1 + 2, 2);
|
|
SET @rtf = REPLACE(@rtf, SUBSTRING(@rtf, @Pos1, 4),CHAR(CONVERT(int, CONVERT (binary(1), @hex,1))));
|
|
SET @Pos1 = CHARINDEX('\''', @rtf);
|
|
END
|
|
END
|
|
|
|
SET @rtf = @rtf + ' ';
|
|
|
|
SET @Pos1 = PATINDEX('%\%[0123456789][\ ]%', @rtf);
|
|
|
|
WHILE @Pos1 > 0
|
|
BEGIN
|
|
SET @Pos2 = CHARINDEX(' ', @rtf, @Pos1 + 1);
|
|
|
|
IF @Pos2 < @Pos1
|
|
SET @Pos2 = CHARINDEX('\', @rtf, @Pos1 + 1);
|
|
|
|
IF @Pos2 < @Pos1
|
|
BEGIN
|
|
SET @rtf = SUBSTRING(@rtf, 1, @Pos1 - 1);
|
|
SET @Pos1 = 0;
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @rtf = STUFF(@rtf, @Pos1, @Pos2 - @Pos1 + 1, '');
|
|
SET @Pos1 = PATINDEX('%\%[0123456789][\ ]%', @rtf);
|
|
END
|
|
END
|
|
|
|
SET @rtf = REPLACE(@rtf,char(10),' ');
|
|
SET @rtf = REPLACE(@rtf,char(13),' ');
|
|
SET @rtf = REPLACE(@rtf,' ',' ');
|
|
SET @rtf = REPLACE(@rtf,' ',' ');
|
|
SET @rtf = LTRIM(RTRIM(@rtf));
|
|
|
|
RETURN @rtf;
|
|
END |