USP_WEBDASHBOARDFOLDER_EDIT
Updates an existing web dashboard folder.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@NAME | nvarchar(200) | IN | |
@DESCRIPTION | nvarchar(1000) | IN | |
@PARENTPATH | nvarchar(1000) | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_WEBDASHBOARDFOLDER_EDIT(@ID uniqueidentifier,
@NAME nvarchar(200),
@DESCRIPTION nvarchar(1000),
@PARENTPATH nvarchar(1000),
@CHANGEAGENTID uniqueidentifier)
as
set nocount on;
declare @PATH nvarchar(1000);
declare @PARENTID uniqueidentifier;
declare @TEMPPARENTID uniqueidentifier;
select @PARENTID = ID from dbo.WEBDASHBOARDFOLDER where PATH = @PARENTPATH;
set @TEMPPARENTID = @PARENTID;
set @PATH = '';
while @TEMPPARENTID is not null
begin
select @TEMPPARENTID = PARENTID, @PATH = NAME + '/' + @PATH from dbo.WEBDASHBOARDFOLDER where ID = @TEMPPARENTID;
end;
set @PATH = @PATH + @NAME;
declare @EXISTINGPATH nvarchar(1000);
select @EXISTINGPATH = PATH from dbo.WEBDASHBOARDFOLDER where ID = @ID;
update dbo.WEBDASHBOARDFOLDER set NAME = @NAME,
DESCRIPTION = @DESCRIPTION,
PATH = @PATH,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = getdate()
where ID = @ID;
if @EXISTINGPATH <> @PATH
begin
declare @CHILDID uniqueidentifier;
declare @CHILDNAME nvarchar(200);
declare @CHILDDESCRIPTION nvarchar(1000);
-- Recursively update any child folders belonging to this folder with the new path.
declare c cursor local fast_forward for select ID, NAME, DESCRIPTION from dbo.WEBDASHBOARDFOLDER where PARENTID = @ID;
open c;
fetch next from c into @CHILDID, @CHILDNAME, @CHILDDESCRIPTION;
while @@fetch_status = 0
begin
if @CHILDID is not null
exec dbo.USP_WEBDASHBOARDFOLDER_EDIT @CHILDID, @CHILDNAME, @CHILDDESCRIPTION, @PATH, @CHANGEAGENTID;
fetch next from c into @CHILDID, @CHILDNAME, @CHILDDESCRIPTION;
end;
close c;
deallocate c;
end;