dbo.ADS_ZGroupInADSGroup
Stored ProcedureSQL_STORED_PROCEDURESandbox DB
Interpretation
- Database routine. Review parameters, called procedures, DBQueue inserts, and QBM_PJobCreate helper calls before assuming side effects.
- DBQueue relation detected. Follow the task procedure and referenced-by list for async processing.
Relations
- Single DBQueue insert -> ADS-K-ADSGroupInADSGroup-Circ / ADS_ZGroupInADSGroup_Circ at line 23
- References QBM_PDBQueueInsert_Single
Typed Edges
- queues DBQueue task ADS_ZGroupInADSGroup_Circ at line 23 Single DBQueue insert -> ADS-K-ADSGroupInADSGroup-Circ / ADS_ZGroupInADSGroup_Circ at line 23
- references source dbo.QBM_FCVElementToObjectKey2 source text reference
- references source dbo.QBM_FGISessionContext source text reference
- references source dbo.QBM_PDBQueueCalculateDelta source text reference
- references source dbo.QBM_PDBQueueInsert_Single source text reference
- references source dbo.QBM_PSessionContextSet source text reference
- references source dbo.QBM_PSessionErrorAdd source text reference
- queues DBQueue task ADS-K-ADSGroupInADSGroup-Circ -> ADS_ZGroupInADSGroup_Circ QBM_PDBQueueInsert_Single 'ADS-K-ADSGroupInADSGroup-Circ' , '', '', @GenProcID end if @CountDeltaOrigin > 0 begin declare @GenProcIDs_CountDeltaOrigin QBM_YCursorBuffer insert into @GenProcIDs_CountDeltaOrigin (UID1) select distinct de.Gen…
Complete Source
1CREATE PROCEDURE ADS_ZGroupInADSGroup(2 @SlotNumber int3)4AS5BEGIN6 DECLARE @Sourcedata QBM_YDataForDelta,7 @CountDeltaQantity int,8 @CountDeltaOrigin int9 DECLARE @lauf int10 DECLARE @GenProcID varchar(38)11 DECLARE @ElementCount int12 DECLARE @ElementIndex int13 DECLARE @ElementLast int14 DECLARE @GenProcID_R varchar(38) = dbo.QBM_FGISessionContext('')15 DECLARE @QBMDeltaHelper QBM_YDBQueueDeltaHelper16 DECLARE @DBQueueCurrent QBM_YDBQueueCurrent17 BEGIN TRY18 INSERT INTO @DBQueueCurrent(UID_DialogDBQueue,19 UID_Parameter,20 UID_SubParameter,21 GenProcID)22 SELECT23 UID_DialogDBQueue,24 UID_Parameter,25 UID_SubParameter,26 GenProcID27 FROM QBMDBQueueCurrent cu28 WITH(readpast)29 WHERE30 cu.SlotNumber = @SlotNumber31 IF @@rowcount = 032 BEGIN33 GOTO EndLabel34 END35 INSERT INTO @SourceData(IsUpcommingContent,36 XOriginAfter,37 Element,38 AssignedElement,39 XOriginBefore)40 SELECT41 0,42 0,43 UID_ADSGroupParent,44 UID_ADSGroupChild,45 Levelnumber + 146 FROM ADSGroupCollection47 JOIN @DBQueueCurrent x48 ON UID_ADSGroupParent = x.uid_parameter49 INSERT INTO @QBMDeltaHelper(Element,50 AssignedElement,51 XOrigin)52 SELECT53 uid_parameter,54 uid_parameter,55 156 FROM @DBQueueCurrent p57 SELECT @lauf = 158 WHILE @lauf > 059 BEGIN60 INSERT INTO @QBMDeltaHelper(Element,61 AssignedElement,62 XOrigin)63 SELECT64 DISTINCT a.Element,65 gig.uid_ADSGroupChild,66 a.XOrigin + 167 FROM @QBMDeltaHelper a68 JOIN ADSGroupInADSGroup gig69 ON a.assignedElement = gig.uid_ADSGroupParent70 WHERE71 NOT EXISTS(72 SELECT TOP 1 173 FROM @QBMDeltaHelper e74 WHERE75 e.Element = a.Element AND e.AssignedElement = gig.uid_ADSGroupChild)76 SELECT @lauf = @@rowcount77 END78 INSERT INTO @SourceData(IsUpcommingContent,79 XOriginBefore,80 XOriginAfter,81 Element,82 AssignedElement)83 SELECT84 1,85 0,86 XOrigin,87 Element,88 AssignedElement89 FROM @QBMDeltaHelper90 EXEC QBM_PDBQueueCalculateDelta @SourceData,91 @DeltaQuantity = 0,92 @DeltaDelete = 1,93 @DeltaInsert = 1,94 @DeltaOrigin = 1,95 @CountDeltaQantity = @CountDeltaQantity OUTPUT,96 @CountDeltaOrigin = @CountDeltaOrigin OUTPUT,97 @UseIsInEffect = 0,98 @SlotNumber = @SlotNumber,99 @DBQueueCurrentExtern = @DBQueueCurrent100 IF @CountDeltaQantity > 0101 BEGIN102 DECLARE @GenProcIDs_CountDeltaQuantity QBM_YCursorBuffer103 INSERT INTO @GenProcIDs_CountDeltaQuantity(UID1)104 SELECT de.GenProcID105 FROM #QBMDeltaDelete de106 UNION107 SELECT de.GenProcID108 FROM #QBMDeltaInsert de109 SELECT @ElementCount = @@ROWCOUNT110 SELECT @ElementIndex = @@IDENTITY - @ElementCount +1111 SELECT @ElementLast = @@IDENTITY112 WHILE @ElementIndex <= @ElementLast113 BEGIN114 SELECT TOP 1 @GenProcID = bu.UID1115 FROM @GenProcIDs_CountDeltaQuantity bu116 WHERE117 bu.ElementIndex = @ElementIndex118 IF EXISTS(119 SELECT TOP 1 1120 FROM #QBMDeltaDelete x121 WHERE122 x.GenProcID = @GenProcID)123 BEGIN124 EXEC QBM_PSessionContextSet 'GenProcID',125 @GenProcID126 DELETE ADSGroupCollection127 WHERE128 EXISTS(129 SELECT TOP 1 1130 FROM #QBMDeltaDelete d131 WHERE132 d.AssignedElement = ADSGroupCollection.uid_ADSGroupChild AND d.Element = ADSGroupCollection.uid_ADSGroupParent AND d.GenProcID = @GenProcID133 )134 END135 IF EXISTS(136 SELECT TOP 1 1137 FROM #QBMDeltaInsert x138 WHERE139 x.GenProcID = @GenProcID)140 BEGIN141 EXEC QBM_PSessionContextSet 'GenProcID',142 @GenProcID143 INSERT INTO ADSGroupCollection(UID_ADSGroupParent,144 UID_ADSGroupChild,145 LevelNumber,146 XObjectKey)147 SELECT148 x.uid_ADSGroupParent,149 x.uid_ADSGroupChild,150 x.LevelNumber - 1,151 dbo.QBM_FCVElementToObjectKey2('ADSGroupCollection',152 'UID_ADSGroupParent',153 x.UID_ADSGroupParent,154 'UID_ADSGroupChild',155 x.UID_ADSGroupChild)156 FROM(157 SELECT158 Element AS uid_ADSGroupParent,159 AssignedElement AS uid_ADSGroupChild,160 XOrigin AS Levelnumber161 FROM #QBMDeltaInsert162 WHERE163 GenProcID = @GenProcID) AS x164 END165 SELECT @ElementIndex += 1166 END167 EXEC QBM_PDBQueueInsert_Single 'ADS-K-ADSGroupInADSGroup-Circ',168 '',169 '',170 @GenProcID171 END172 IF @CountDeltaOrigin > 0173 BEGIN174 DECLARE @GenProcIDs_CountDeltaOrigin QBM_YCursorBuffer175 INSERT INTO @GenProcIDs_CountDeltaOrigin(UID1)176 SELECT177 DISTINCT de.GenProcID178 FROM #QBMDeltaOrigin de179 SELECT @ElementCount = @@ROWCOUNT180 SELECT @ElementIndex = @@IDENTITY - @ElementCount +1181 SELECT @ElementLast = @@IDENTITY182 WHILE @ElementIndex <= @ElementLast183 BEGIN184 SELECT TOP 1 @GenProcID = bu.UID1185 FROM @GenProcIDs_CountDeltaOrigin bu186 WHERE187 bu.ElementIndex = @ElementIndex188 EXEC QBM_PSessionContextSet 'GenProcID',189 @GenProcID190 UPDATE ADSGroupCollection191 SET Levelnumber = x.LevelNumber - 1192 FROM ADSGroupCollection co193 JOIN(194 SELECT195 Element AS uid_ADSGroupParent,196 AssignedElement AS uid_ADSGroupChild,197 XOrigin AS LevelNumber198 FROM #QBMDeltaOrigin199 WHERE200 GenProcID = @GenProcID) AS x201 ON co.uid_ADSGroupParent = x.uid_ADSGroupParent AND co.UID_ADSGroupChild = x.UID_ADSGroupChild202 WHERE203 co.LevelNumber <> x.Levelnumber -1204 SELECT @ElementIndex += 1205 END206 END207 END TRY208 BEGIN CATCH209 EXEC QBM_PSessionErrorAdd DEFAULT210 RAISERROR('',211 18,212 1)213 WITH NOWAIT214 END CATCH215 endLabel:216 EXEC QBM_PSessionContextSet 'GenProcID',217 @GenProcID_R218 RETURN219END
Open raw exported source
1 create procedure ADS_ZGroupInADSGroup (@SlotNumber int ) AS begin declare @Sourcedata QBM_YDataForDelta , @CountDeltaQantity int , @CountDeltaOrigin2 int declare @lauf int declare @GenProcID varchar(38) declare @ElementCount int declare @ElementIndex int declare @ElementLast int declare @GenProcID_R3 varchar(38) = dbo.QBM_FGISessionContext('') declare @QBMDeltaHelper QBM_YDBQueueDeltaHelper declare @DBQueueCurrent QBM_YDBQueueCurrent BEGIN TRY insert4 into @DBQueueCurrent(UID_DialogDBQueue, UID_Parameter, UID_SubParameter, GenProcID) select UID_DialogDBQueue, UID_Parameter, UID_SubParameter, GenProcID5 from QBMDBQueueCurrent cu with (readpast) where cu.SlotNumber = @SlotNumber if @@rowcount = 0 begin goto EndLabel end insert into @SourceData( IsUpcommingContent6, XOriginAfter , Element, AssignedElement, XOriginBefore ) select 0, 0 , UID_ADSGroupParent, UID_ADSGroupChild, Levelnumber + 1 from ADSGroupCollection7 join @DBQueueCurrent x on UID_ADSGroupParent = x.uid_parameter insert into @QBMDeltaHelper(Element, AssignedElement, XOrigin) select uid_parameter, 8uid_parameter, 1 from @DBQueueCurrent p select @lauf = 1 while @lauf > 0 begin insert into @QBMDeltaHelper (Element, AssignedElement, XOrigin) select9 distinct a.Element, gig.uid_ADSGroupChild, a.XOrigin + 1 from @QBMDeltaHelper a join ADSGroupInADSGroup gig on a.assignedElement = gig.uid_ADSGroupParent10 where Not exists (select top 1 1 from @QBMDeltaHelper e where e.Element = a.Element and e.AssignedElement = gig.uid_ADSGroupChild ) select @lauf = @@rowcount11 end insert into @SourceData( IsUpcommingContent, XOriginBefore, XOriginAfter , Element, AssignedElement ) select 1, 0, XOrigin , Element, AssignedElement12 from @QBMDeltaHelper exec QBM_PDBQueueCalculateDelta @SourceData, @DeltaQuantity = 0, @DeltaDelete = 1, @DeltaInsert = 1, @DeltaOrigin = 1, @CountDeltaQantity13 = @CountDeltaQantity output , @CountDeltaOrigin = @CountDeltaOrigin output , @UseIsInEffect = 0 , @SlotNumber = @SlotNumber , @DBQueueCurrentExtern = 14@DBQueueCurrent if @CountDeltaQantity > 0 begin declare @GenProcIDs_CountDeltaQuantity QBM_YCursorBuffer insert into @GenProcIDs_CountDeltaQuantity (UID115) select de.GenProcID from #QBMDeltaDelete de union select de.GenProcID from #QBMDeltaInsert de select @ElementCount = @@ROWCOUNT select @ElementIndex 16= @@IDENTITY - @ElementCount +1 select @ElementLast = @@IDENTITY while @ElementIndex <= @ElementLast begin select top 1 @GenProcID = bu.UID1 from @GenProcIDs_CountDeltaQuantity17 bu where bu.ElementIndex = @ElementIndex if exists (select top 1 1 from #QBMDeltaDelete x where x.GenProcID = @GenProcID ) begin exec QBM_PSessionContextSet18 'GenProcID', @GenProcID delete ADSGroupCollection where exists (select top 1 1 from #QBMDeltaDelete d where d.AssignedElement = ADSGroupCollection.uid_ADSGroupChild19 and d.Element = ADSGroupCollection.uid_ADSGroupParent and d.GenProcID = @GenProcID ) end if exists (select top 1 1 from #QBMDeltaInsert x where x.GenProcID20 = @GenProcID ) begin exec QBM_PSessionContextSet 'GenProcID', @GenProcID insert into ADSGroupCollection ( UID_ADSGroupParent, UID_ADSGroupChild, LevelNumber21 , XObjectKey ) select x.uid_ADSGroupParent, x.uid_ADSGroupChild, x.LevelNumber - 1 ,dbo.QBM_FCVElementToObjectKey2('ADSGroupCollection', 'UID_ADSGroupParent'22, x.UID_ADSGroupParent, 'UID_ADSGroupChild', x.UID_ADSGroupChild) from ( select Element as uid_ADSGroupParent, AssignedElement as uid_ADSGroupChild, XOrigin23 as Levelnumber from #QBMDeltaInsert where GenProcID = @GenProcID ) as x end select @ElementIndex += 1 end exec QBM_PDBQueueInsert_Single 'ADS-K-ADSGroupInADSGroup-Circ'24, '', '', @GenProcID end if @CountDeltaOrigin > 0 begin declare @GenProcIDs_CountDeltaOrigin QBM_YCursorBuffer insert into @GenProcIDs_CountDeltaOrigin25 (UID1) select distinct de.GenProcID from #QBMDeltaOrigin de select @ElementCount = @@ROWCOUNT select @ElementIndex = @@IDENTITY - @ElementCount +1 select26 @ElementLast = @@IDENTITY while @ElementIndex <= @ElementLast begin select top 1 @GenProcID = bu.UID1 from @GenProcIDs_CountDeltaOrigin bu where bu.ElementIndex27 = @ElementIndex exec QBM_PSessionContextSet 'GenProcID', @GenProcID update ADSGroupCollection set Levelnumber = x.LevelNumber - 1 from ADSGroupCollection28 co join ( select Element as uid_ADSGroupParent, AssignedElement as uid_ADSGroupChild, XOrigin as LevelNumber from #QBMDeltaOrigin where GenProcID = @GenProcID29 ) as x on co.uid_ADSGroupParent = x.uid_ADSGroupParent and co.UID_ADSGroupChild = x.UID_ADSGroupChild where co.LevelNumber <> x.Levelnumber -1 select30 @ElementIndex += 1 end end END TRY BEGIN CATCH exec QBM_PSessionErrorAdd default RAISERROR ('', 18, 1) WITH NOWAIT END CATCH endLabel: exec QBM_PSessionContextSet31 'GenProcID', @GenProcID_R return end 32