Back to OIM Explorer

dbo.QER_PSlotResetOnInvalidRoot_L

Stored ProcedureSQL_STORED_PROCEDURESandbox DB

Stored Procedure.

Source: sandbox-db sys.sql_modules

Source size: 2.985 characters

Interpretation

  • Database routine. Review parameters, called procedures, DBQueue inserts, and QBM_PJobCreate helper calls before assuming side effects.

Relations

  • No extracted relations.

Typed Edges

  • references source dbo.QBM_FGICodeName source text reference
  • references source dbo.QBM_FGISessionErrorRethrow source text reference
  • references source dbo.QBM_FSQProcedureDef source text reference
  • references source dbo.QBM_PDBQCS_CurrentMoveSlot source text reference
  • references source dbo.QBM_PSessionErrorAdd source text reference
  • references source dbo.QBM_PSQLCreate source text reference
  • references source dbo.QBM_PWaitForSeconds source text reference

Complete Source

SQL142 lines
1CREATE PROCEDURE QER_PSlotResetOnInvalidRoot_L(2  @DBQueueCurrent QBM_YDBQueueCurrent READONLY,3  @UID_BasetreeAssignToUse varchar(38),4  @SlotNumber int5)6AS7BEGIN8  DECLARE @erg int = 09  DECLARE @DebugSwitch int = 010  DECLARE @UnComment BIT = 1,11  @Unformat BIT = 112  DECLARE @DebugLevel char(1) = 'W'13  DECLARE @ProcName varchar(30)14  DECLARE @ProcDef nvarchar(max)15  DECLARE @ProcBody nvarchar(max)16  DECLARE @OutstandingTest nvarchar(1000)17  DECLARE @SourceName nvarchar(1000)18  DECLARE @anlegenklappt BIT = 019  DECLARE @waitTime float20  SET XACT_ABORT OFF21  BEGIN TRY22    SELECT23      @ProcName = dbo.QBM_FGICodeName('PSR',24      @UID_BasetreeAssignToUse)25    IF @DebugSwitch > 026    BEGIN27      SELECT28        @UnComment = 0,29        @Unformat = 0 print @ProcName30    END31    WHILE NOT EXISTS(32    SELECT TOP 1 133    FROM sys.objects o34    WHERE35      o.name = @ProcName)36    BEGIN37      IF @DebugSwitch > 038      BEGIN39        print 'dann bauen wir eine'40      END41      SELECT42        @waitTime = convert(float,43        @@spid) / 1000.044      EXEC QBM_PWaitForSeconds @waittime45      SELECT46        @ProcBody = CONCAT('47 declare @SlotNumberSource int48 declare @SlotNumberTarget int49 declare @DBQueueToMove QBM_YDBQCSCurrentToMove 50 51	SET XACT_ABORT OFF5253 	-- befüllen mit den interessanten Einträgen54	insert into @DBQueueToMove(UID_DialogDBQueue)55		select cul.UID_DialogDBQueue56			from @DBQueueCurrent cul  -- Suchbedingung57									join BaseTree b with (readpast) on cul.UID_Parameter = b.UID_Org58									left outer join OrgRootAssign ra with (readpast) on ra.UID_OrgRoot = b.UID_OrgRoot59																	and ra.UID_BaseTreeAssign = '''60        ,61        @UID_BasetreeAssignToUse,62        '''63																	and ra.IsAssignmentAllowed = 164			where ra.UID_OrgRoot is null6566	if @@ROWCOUNT > 067	 begin6869		select @SlotNumberSource = @SlotNumber -- die übergebene Slotnummer70		select @SlotnumberTarget = 071																			72		exec @ret = QBM_PDBQCS_CurrentMoveSlot @DBQueueToMove, @SlotNumberSource, @SlotnumberTarget7374	  end7576				'77        )78      SELECT79        @SourceName = CONCAT('QER_PSlotResetOnInvalidRoot_L',80        '(',81        @UID_BasetreeAssignToUse,82        ')')83      SELECT84        @procdef = dbo.QBM_FSQProcedureDef(@ProcName,85        '@DBQueueCurrent QBM_YDBQueueCurrent readonly86												, @SlotNumber int ',87        @ProcBody,88        @SourceName)89      IF @DebugSwitch > 090      BEGIN91        print @procdef92      END93      BEGIN94        TRANSACTION95        IF NOT EXISTS(96          SELECT TOP 1 197          FROM sys.objects o98          WHERE99            o.name = @ProcName)100        BEGIN101          BEGIN TRY102            EXEC QBM_PSQLCreate @Procname,103            'P',104              @procDef,105              @UnComment = @UnComment,106              @Unformat = @Unformat107            SELECT @anlegenklappt = 1108          END TRY109          BEGIN CATCH110            IF @DebugSwitch > 0111            BEGIN112              print 'catch beim Anlegen?'113            END114            SELECT @anlegenklappt = 0115          END CATCH116        END117        IF @anlegenklappt = 1118        BEGIN119          COMMIT120        END121        ELSE122        BEGIN123          ROLLBACK124        END125        SELECT126          @waitTime =(convert(float, @@spid) / 1000.0) + 0.4127        EXEC QBM_PWaitForSeconds @waittime128      END129      EXEC @erg = @ProcName @DBQueueCurrent,130        @SlotNumber131    END TRY132    BEGIN CATCH133      EXEC QBM_PSessionErrorAdd DEFAULT134      DECLARE @Rethrow varchar(1000) = dbo.QBM_FGISessionErrorRethrow()135      RAISERROR(@Rethrow,136      18,137      1)138        WITH NOWAIT139    END CATCH140    endLabel:141    RETURN(@erg)142  END
Open raw exported source
SQL · Raw45 lines
1create   procedure QER_PSlotResetOnInvalidRoot_L (@DBQueueCurrent QBM_YDBQueueCurrent readonly , @UID_BasetreeAssignToUse varchar(38) , @SlotNumber2 int ) as begin declare @erg int = 0 declare @DebugSwitch int = 0 declare @UnComment bit = 1 ,@Unformat bit = 1 declare @DebugLevel char(1) = 'W' declare3 @ProcName varchar(30) declare @ProcDef nvarchar(max) declare @ProcBody nvarchar(max) declare @OutstandingTest nvarchar(1000) declare @SourceName nvarchar4(1000) declare @anlegenklappt bit = 0 declare @waitTime float SET XACT_ABORT OFF BEGIN TRY select @ProcName = dbo.QBM_FGICodeName('PSR', @UID_BasetreeAssignToUse5)  if @DebugSwitch > 0 begin select @UnComment = 0 , @Unformat = 0 print @ProcName  end while not exists (select top 1 1 from sys.objects o where o.name6 = @ProcName ) begin if @DebugSwitch > 0 begin print 'dann bauen wir eine' end select @waitTime = convert(float, @@spid) / 1000.0 exec QBM_PWaitForSeconds7 @waittime select @ProcBody = CONCAT( '8 declare @SlotNumberSource int9 declare @SlotNumberTarget int10 declare @DBQueueToMove QBM_YDBQCSCurrentToMove 11 12	SET XACT_ABORT OFF1314 	-- befüllen mit den interessanten Einträgen15	insert into @DBQueueToMove(UID_DialogDBQueue)16		select cul.UID_DialogDBQueue17			from @DBQueueCurrent cul  -- Suchbedingung18									join BaseTree b with (readpast) on cul.UID_Parameter = b.UID_Org19									left outer join OrgRootAssign ra with (readpast) on ra.UID_OrgRoot = b.UID_OrgRoot20																	and ra.UID_BaseTreeAssign = '''21, @UID_BasetreeAssignToUse, '''22																	and ra.IsAssignmentAllowed = 123			where ra.UID_OrgRoot is null2425	if @@ROWCOUNT > 026	 begin2728		select @SlotNumberSource = @SlotNumber -- die übergebene Slotnummer29		select @SlotnumberTarget = 030																			31		exec @ret = QBM_PDBQCS_CurrentMoveSlot @DBQueueToMove, @SlotNumberSource, @SlotnumberTarget3233	  end3435				'36 ) select @SourceName = concat('QER_PSlotResetOnInvalidRoot_L' , '(' , @UID_BasetreeAssignToUse , ')' ) select @procdef = dbo.QBM_FSQProcedureDef(@ProcName37 , '@DBQueueCurrent QBM_YDBQueueCurrent readonly38												, @SlotNumber int ' , @ProcBody , @SourceName ) if @DebugSwitch > 0 begin print @procdef 39end    begin transaction if not exists (select top 1 1 from sys.objects o where o.name = @ProcName ) begin BEGIN TRY exec QBM_PSQLCreate @Procname, 'P'40, @procDef, @UnComment = @UnComment, @Unformat = @Unformat select @anlegenklappt = 1 END TRY BEGIN CATCH if @DebugSwitch > 0 begin print 'catch beim Anlegen?'41 end select @anlegenklappt = 0  END CATCH end  if @anlegenklappt = 1 begin commit end else begin rollback  end  select @waitTime = (convert(float, @@spid42) / 1000.0) + 0.4 exec QBM_PWaitForSeconds @waittime end   exec @erg = @ProcName @DBQueueCurrent, @SlotNumber END TRY BEGIN CATCH exec QBM_PSessionErrorAdd43 default declare @Rethrow varchar(1000) = dbo.QBM_FGISessionErrorRethrow() RAISERROR (@Rethrow, 18, 1) WITH NOWAIT END CATCH  endLabel: return (@erg) end44 45