Stored Procedures [dbo].[GetAdditionalDataByGuidPath]
Properties
PropertyValue
ANSI Nulls OnYes
Quoted Identifier OnYes
Parameters
NameData TypeMax Length (Bytes)Direction
@pathvarchar(512)512
@selectedOrderNumint4Out
@maxOrderNumberint4Out
SQL Script
CREATE PROCEDURE [dbo].[GetAdditionalDataByGuidPath]
    @path AS VARCHAR(512),
    @selectedOrderNum AS INT OUTPUT,
    @maxOrderNumber AS INT OUTPUT
    
AS
BEGIN

    SET NOCOUNT ON;

    DECLARE @pos AS INT
    SET @pos= 1
    DECLARE @start AS INT
    SET @start= 1
    DECLARE @guid AS VARCHAR(40)
    DECLARE @lenght AS INT
    --DECLARE @Guids TABLE (guid varchar(40))
    DECLARE @ParentOrderNumbers TABLE (order_num int)
    DECLARE @depth AS INT
    SET @depth= 0
    DECLARE @parent_id AS VARCHAR(40)
    SET @parent_id = ''

    INSERT INTO @ParentOrderNumbers (order_num) VALUES (-1)
    
    WHILE(@pos > 0) BEGIN
        SET @pos= CHARINDEX('\',@path,@start)
        SET @lenght= @pos-@start
        if (@lenght < 0) SET @lenght=40
        SET @guid= SUBSTRING(@path, @start, @lenght)        
        SET @start= @pos + 1
        --INSERT INTO @Guids (Guid) VALUES (@guid)
        print @parent_id
        SELECT @selectedOrderNum = order_num FROM dbo.outline WHERE doc_id = @guid and depth = @depth and parent_id=@parent_id
        INSERT INTO @ParentOrderNumbers (order_num) VALUES (@selectedOrderNum)
        SET @depth= @depth + 1
        SET @parent_id = @guid
    END

DELETE FROM @ParentOrderNumbers WHERE (order_num = @selectedOrderNum)

-- >>>>>>>> section copied from GetParametersForSectionFilter >>>>>>>
-- ********** Select the section's id **********
-- SELECT @selectedDocumentID = doc_id FROM dbo.outline WHERE order_num = @selectedOrderNum

-- ********** Select the maximum order number **********
DECLARE @selectedDepth AS INT

SELECT @selectedDepth = outline.depth FROM outline
    WHERE outline.order_num = @selectedOrderNum

SELECT TOP 1 @maxOrderNumber = outline.order_num - 1
    FROM outline
    WHERE
        outline.order_num > @selectedOrderNum AND
        outline.depth <= @selectedDepth
    ORDER BY outline.order_num

IF (@maxOrderNumber IS NULL)
BEGIN
     SELECT @maxOrderNumber=MAX(outline.order_num) FROM OUTLINE
END

-- <<<<<<<<<<<<<<<<<<<<<<<<<<<< end section <<<<<<<<<<<<<<<<<<<<<<<<<

    --SELECT * FROM @Guids
    SELECT * FROM @ParentOrderNumbers

END
GO
Uses