Procedura-SYS$DebugPrepare

Popis:
Nataví databázi pro ladění, nebo případně nastavení zruší. Aktuálně v souvislosti s převedením Seldef / Seldat na temporary tables vytvoří jejich kopie a na původní tabulky pověsí triggery pro replikaci záznamů

Parametry:

NázevPopisDatový typ
adebugonChar(1)

Tělo:

begin
  if (ADebugOn = 'A') then begin
    --table SELDEF_DBG
    SELECT count(*) FROM RDB$RELATIONS WHERE UPPER(RDB$RELATION_NAME) = 'SELDEF_DBG' into :mCount;
    if (mCount = 0) then
      execute statement 'CREATE TABLE SELDEF_DBG (ID ID,' ||
                        '                         STATION  STATION)';
    --trigger SELDEF_DBGI
    SELECT count(*) FROM RDB$TRIGGERS WHERE UPPER(RDB$TRIGGER_NAME) = 'SELDEF_DBGI' into :mCount;
    if (mCount = 0) then
      execute statement 'CREATE TRIGGER SELDEF_DBGI FOR SELDEF' ||
                        ' ACTIVE AFTER INSERT POSITION 0' ||
                        ' AS' ||
                        '   begin' ||
                        '     insert into SelDef_DBG(ID, Station) values(New.ID, New.Station);' ||
                        '   end';
    --trigger SELDEF_DBGU
    SELECT count(*) FROM RDB$TRIGGERS WHERE UPPER(RDB$TRIGGER_NAME) = 'SELDEF_DBGU' into :mCount;
    if (mCount = 0) then
      execute statement 'CREATE TRIGGER SELDEF_DBGU FOR SELDEF' ||
                        ' ACTIVE AFTER UPDATE POSITION 0' ||
                        ' AS' ||
                        '   begin' ||
                        '     update SelDef_DBG set ID = New.ID, Station = New.Station where ID = Old.ID;' ||
                        '   end';
    --trigger SELDEF_DBGD
    SELECT count(*) FROM RDB$TRIGGERS WHERE UPPER(RDB$TRIGGER_NAME) = 'SELDEF_DBGD' into :mCount;
    if (mCount = 0) then
      execute statement 'CREATE TRIGGER SELDEF_DBGD FOR SELDEF' ||
                        ' ACTIVE AFTER DELETE POSITION 0' ||
                        ' AS' ||
                        '   begin' ||
                        '     delete from SelDef_DBG where ID = Old.ID;' ||
                        '   end';
    --table SELDAT_DBG
    SELECT count(*) FROM RDB$RELATIONS WHERE UPPER(RDB$RELATION_NAME) = 'SELDAT_DBG' into :mCount;
    if (mCount = 0) then
      execute statement 'CREATE TABLE SELDAT_DBG (SEL_ID  ID,' ||
                        '                         OBJ_ID  ID_NULL)';
    --trigger SELDAT_DBGI
    SELECT count(*) FROM RDB$TRIGGERS WHERE UPPER(RDB$TRIGGER_NAME) = 'SELDAT_DBGI' into :mCount;
    if (mCount = 0) then
      execute statement 'CREATE TRIGGER SELDAT_DBGI FOR SELDAT' ||
                        ' ACTIVE AFTER INSERT POSITION 0' ||
                        ' AS' ||
                        '   begin' ||
                        '     insert into SelDat_DBG(Sel_ID, Obj_ID) values(New.Sel_ID, New.Obj_ID);' ||
                        '   end';
    --trigger SELDAT_DBGU
    SELECT count(*) FROM RDB$TRIGGERS WHERE UPPER(RDB$TRIGGER_NAME) = 'SELDAT_DBGU' into :mCount;
    if (mCount = 0) then
      execute statement 'CREATE TRIGGER SELDAT_DBGU FOR SELDAT' ||
                        ' ACTIVE AFTER UPDATE POSITION 0' ||
                        ' AS' ||
                        '   begin' ||
                        '     update SelDat_DBG set Sel_ID = New.Sel_ID, Obj_ID = New.Obj_ID where Sel_ID = Old.Sel_ID and Obj_ID = Old.Obj_ID;' ||
                        '   end';
    --trigger SELDAT_DBGD
    SELECT count(*) FROM RDB$TRIGGERS WHERE UPPER(RDB$TRIGGER_NAME) = 'SELDAT_DBGD' into :mCount;
    if (mCount = 0) then
      execute statement 'CREATE TRIGGER SELDAT_DBGD FOR SELDAT' ||
                        ' ACTIVE AFTER DELETE POSITION 0' ||
                        ' AS' ||
                        '   begin' ||
                        '     delete from SelDat_DBG where Sel_ID = Old.Sel_ID and Obj_ID = Old.Obj_ID;' ||
                        '   end';
  end else begin
    --table SELDEF_DBG
    SELECT count(*) FROM RDB$RELATIONS WHERE UPPER(RDB$RELATION_NAME) = 'SELDEF_DBG' into :mCount;
    if (mCount > 0) then
      execute statement 'DROP TABLE SELDEF_DBG';
    --trigger SELDEF_DBGI
    SELECT count(*) FROM RDB$TRIGGERS WHERE UPPER(RDB$TRIGGER_NAME) = 'SELDEF_DBGI' into :mCount;
    if (mCount > 0) then
      execute statement 'DROP TRIGGER SELDEF_DBGI';
    --trigger SELDEF_DBGU
    SELECT count(*) FROM RDB$TRIGGERS WHERE UPPER(RDB$TRIGGER_NAME) = 'SELDEF_DBGU' into :mCount;
    if (mCount > 0) then
      execute statement 'DROP TRIGGER SELDEF_DBGU';
    --trigger SELDEF_DBGD
    SELECT count(*) FROM RDB$TRIGGERS WHERE UPPER(RDB$TRIGGER_NAME) = 'SELDEF_DBGD' into :mCount;
    if (mCount > 0) then
      execute statement 'DROP TRIGGER SELDEF_DBGD';
    --table SELDAT_DBG
    SELECT count(*) FROM RDB$RELATIONS WHERE UPPER(RDB$RELATION_NAME) = 'SELDAT_DBG' into :mCount;
    if (mCount > 0) then
      execute statement 'DROP TABLE SELDAT_DBG';
    --trigger SELDAT_DBGI
    SELECT count(*) FROM RDB$TRIGGERS WHERE UPPER(RDB$TRIGGER_NAME) = 'SELDAT_DBGI' into :mCount;
    if (mCount > 0) then
      execute statement 'DROP TRIGGER SELDAT_DBGI';
    --trigger SELDAT_DBGU
    SELECT count(*) FROM RDB$TRIGGERS WHERE UPPER(RDB$TRIGGER_NAME) = 'SELDAT_DBGU' into :mCount;
    if (mCount > 0) then
      execute statement 'DROP TRIGGER SELDAT_DBGU';
    --trigger SELDAT_DBGD
    SELECT count(*) FROM RDB$TRIGGERS WHERE UPPER(RDB$TRIGGER_NAME) = 'SELDAT_DBGD' into :mCount;
    if (mCount > 0) then
      execute statement 'DROP TRIGGER SELDAT_DBGD';
  end
end

Generated by ABRA Software a.s. 27.10.2021 16:34:18