"localhost:/firebird/data/ILICHEVSK2.FDB". Триггеры Previous topic Chapter index Next topic

ILT$ITDELETE

 

Описание

(Нет описания для триггера ILT$ITDELETE)

 

Определение

CREATE TRIGGER ILT$ITDELETE FOR IT
ACTIVE AFTER DELETE POSITION 1000
as

declare variable TABLEOPERATIONID integer;
declare variable TABLEID integer;
declare variable FIELDID integer;
declare variable FIELDNAME char(31);
declare variable PARTYIDID integer;
declare variable REGDATEID integer;
declare variable OPERATIONIDID integer;
declare variable INVOICEIDID integer;
declare variable GROSSID integer;
declare variable TAREID integer;
declare variable NETID integer;
declare variable OWNERIDID integer;
declare variable PROVIDERIDID integer;
declare variable SAMPLERQUALITYIDID integer;
declare variable LABQUALITYIDID integer;
declare variable SILAGEIDID integer;
declare variable ROUTEIDID integer;
declare variable STORAGEIDID integer;
declare variable STATEID integer;

begin
  if (old.STATE <> -999) then begin
    TABLEOPERATIONID = gen_id(GEN_ILT$TABLEOPERATION_ID,1);

    select TABLEID
      from ILT$TABLES
      where (ILT$TABLES.TABLENAME = 'IT')
    into :TABLEID;

    insert into ILT$TABLEOPERATION (TABLEOPERATIONID, TABLEID, RECORDID, OPERATIONID)
      values (:TABLEOPERATIONID, :TABLEID, old.INVENTORYID, 3);

    for
      select FIELDID, FIELDNAME
        from ILT$FIELDS
        where (TABLEID = :TABLEID)
      into :FIELDID, :FIELDNAME

    do begin
      if (:FIELDNAME = 'PARTYID')
        then PARTYIDID = :FIELDID;
      else
        if (:FIELDNAME = 'REGDATE') then
          REGDATEID = :FIELDID;
        else
          if (:FIELDNAME = 'OPERATIONID') then
            OPERATIONIDID = :FIELDID;
          else
            if (:FIELDNAME = 'INVOICEID') then
              INVOICEIDID = :FIELDID;
            else
              if (:FIELDNAME = 'GROSS') then
                GROSSID = :FIELDID;
              else
                if (:FIELDNAME = 'TARE') then
                  TAREID = :FIELDID;
                else
                  if (:FIELDNAME = 'NET') then
                    NETID = :FIELDID;
                  else
                    if (:FIELDNAME = 'OWNERID') then
                      OWNERIDID = :FIELDID;
                    else
                      if (:FIELDNAME = 'PROVIDERID') then
                        PROVIDERIDID = :FIELDID;
                      else
                        if (:FIELDNAME = 'SAMPLERQUALITYID') then
                          SAMPLERQUALITYIDID = :FIELDID;
                        else
                          if (:FIELDNAME = 'LABQUALITYID') then
                            LABQUALITYIDID = :FIELDID;
                          else
                            if (:FIELDNAME = 'SILAGEID') then
                              SILAGEIDID = :FIELDID;
                            else
                              if (:FIELDNAME = 'ROUTEID') then
                                ROUTEIDID = :FIELDID;
                              else
                                if (:FIELDNAME = 'STORAGEID') then
                                  STORAGEIDID = :FIELDID;
                                else
                                  if (:FIELDNAME = 'STATE') then
                                    STATEID = :FIELDID;
    end

    insert into ILT$FIELDINTEGER (TABLEOPERATIONID, FIELDID, FIELDVALUE)
      values (:TABLEOPERATIONID, :PARTYIDid, old.PARTYID);

    insert into ilt$fielddate (TABLEOPERATIONID, FIELDID, FIELDVALUE)
      values (:TABLEOPERATIONID, :REGDATEid, old.REGDATE);

    insert into ILT$FIELDINTEGER (TABLEOPERATIONID, FIELDID, FIELDVALUE)
      values (:TABLEOPERATIONID, :OPERATIONIDid, old.OPERATIONID);

    insert into ILT$FIELDINTEGER (TABLEOPERATIONID, FIELDID, FIELDVALUE)
      values (:TABLEOPERATIONID, :INVOICEIDid, old.INVOICEID);

    insert into ILT$FIELDINTEGER (TABLEOPERATIONID, FIELDID, FIELDVALUE)
      values (:TABLEOPERATIONID, :GROSSid, old.GROSS);

    insert into ILT$FIELDINTEGER (TABLEOPERATIONID, FIELDID, FIELDVALUE)
      values (:TABLEOPERATIONID, :TAREid, old.TARE);

    insert into ILT$FIELDINTEGER (TABLEOPERATIONID, FIELDID, FIELDVALUE)
      values (:TABLEOPERATIONID, :NETid, old.NET);

    insert into ILT$FIELDINTEGER (TABLEOPERATIONID, FIELDID, FIELDVALUE)
      values (:TABLEOPERATIONID, :OWNERIDid, old.OWNERID);

    insert into ILT$FIELDINTEGER (TABLEOPERATIONID, FIELDID, FIELDVALUE)
      values (:TABLEOPERATIONID, :PROVIDERIDid, old.PROVIDERID);

    insert into ILT$FIELDINTEGER (TABLEOPERATIONID, FIELDID, FIELDVALUE)
      values (:TABLEOPERATIONID, :SAMPLERQUALITYIDid, old.SAMPLERQUALITYID);

    insert into ILT$FIELDINTEGER (TABLEOPERATIONID, FIELDID, FIELDVALUE)
      values (:TABLEOPERATIONID, :LABQUALITYIDid, old.LABQUALITYID);

    insert into ILT$FIELDINTEGER (TABLEOPERATIONID, FIELDID, FIELDVALUE)
      values (:TABLEOPERATIONID, :SILAGEIDid, old.SILAGEID);

    insert into ILT$FIELDINTEGER (TABLEOPERATIONID, FIELDID, FIELDVALUE)
      values (:TABLEOPERATIONID, :ROUTEIDid, old.ROUTEID);

    insert into ILT$FIELDINTEGER (TABLEOPERATIONID, FIELDID, FIELDVALUE)
      values (:TABLEOPERATIONID, :STORAGEIDid, old.STORAGEID);

    insert into ILT$FIELDINTEGER (TABLEOPERATIONID, FIELDID, FIELDVALUE)
      values (:TABLEOPERATIONID, :STATEID, old.STATE);

  end
end

 

     Previous topic Chapter index Next topic