Fixed logic in vefn_GetROTokens to find RO Tokens for testing.

This commit is contained in:
Rich 2013-11-27 21:07:12 +00:00
parent 6ae55e3780
commit 500c5d224c

View File

@ -7166,26 +7166,45 @@ AS
BEGIN BEGIN
DECLARE @index int DECLARE @index int
SET @index = -1 SET @index = -1
DECLARE @indexb int
DECLARE @indexc int
DECLARE @indexd int
DECLARE @indexNext int
DECLARE @indexReturn int
WHILE (LEN(@text) > 0) WHILE (LEN(@text) > 0)
BEGIN BEGIN
SET @index = PATINDEX('%<[A-Z]-%' , @text) SET @index = PATINDEX('%<[A-Z]-%' , @text)
IF @index = 0 SET @indexb = PATINDEX('%<[A-Z][A-Z0-9]-%' , @text)
SET @index = PATINDEX('%<[A-Z][A-Z0-9]-%' , @text) if((@index=0 and @indexb>0) or (@indexb > 0 and @index > @indexb))
IF @index = 0 SET @index = @indexb
SET @index = PATINDEX('%<[A-Z][A-Z][A-Z0-9]-%' , @text) SET @indexc = PATINDEX('%<[A-Z][A-Z][A-Z0-9]-%' , @text)
IF @index = 0 if((@index=0 and @indexc>0) or (@indexc > 0 and @index > @indexc))
SET @index = PATINDEX('%<[A-Z][A-Z][A-Z][A-Z0-9]-%' , @text) SET @index = @indexc
SET @indexd = PATINDEX('%<[A-Z][A-Z][A-Z][A-Z0-9]-%' , @text)
if((@index=0 and @indexd>0) or (@indexd > 0 and @index > @indexd))
SET @index = @indexd
IF @index = 0 IF @index = 0
BREAK BREAK
SET @indexNext = @index + CHARINDEX('<' , substring(@text,@index+1,len(@text)))
IF @IndexNext=@index
SET @IndexNext = len(@text)+ 3
SET @indexReturn = @index + CHARINDEX(char(13) , substring(@text,@index+1,len(@text)))
IF @IndexReturn=@index
SET @IndexReturn = len(@text)+3
DECLARE @index2 int DECLARE @index2 int
SET @index2 = @index + CHARINDEX('>' , substring(@text,@index,len(@text))) SET @index2 = @index + CHARINDEX('>' , substring(@text,@index,len(@text)))
if @index2 = 0 if @index2 = @index
BREAK BREAK
INSERT INTO @Tokens VALUES (substring(@text, @index,@index2-@index)) if(@index2 > @indexNext or @index2 > @indexReturn)
if(len(@text) > @index2) SET @text = RIGHT(@text, (LEN(@text) - @index))
SET @text = RIGHT(@text, (LEN(@text) - @index2)) else
else BEGIN
SET @Text = '' INSERT INTO @Tokens VALUES (substring(@text, @index,@index2-@index))
if(len(@text) > @index2)
SET @text = RIGHT(@text, (LEN(@text) - @index2))
else
SET @Text = ''
END
END END
RETURN RETURN
END END