ALTER TABLE TBWORKFLOW_CAMPO_SQL
    ADD CAMPOS_VINCULO_DEPENDENCIA BLOB SUB_TYPE 1 SEGMENT SIZE 80 CHARACTER SET UTF8;

COMMENT ON COLUMN TBWORKFLOW_CAMPO_SQL.CAMPOS_VINCULO_DEPENDENCIA IS
'Campos da mesma tarefa ou tarefas anteriores a qual podem modificar os dados de consulta';

/***********************************************************************/
/***********************************************************************/

SET TERM ^ ;

CREATE OR ALTER trigger ttbworkflow_campo_sql_b01u for tbworkflow_campo_sql
active before update position 1
AS
DECLARE VARIABLE HISTORICO VARCHAR(5000);
BEGIN

    HISTORICO = '';
    
    IF (OLD.SQL <> NEW.SQL) THEN
    BEGIN
        HISTORICO = HISTORICO||' SQL ALTERADO!';
    END

    IF (OLD.CAMPOS <> NEW.CAMPOS) THEN
    BEGIN
        HISTORICO = HISTORICO||' CAMPOS ALTERADOS!';
    END

    IF (OLD.TAMANHO <> NEW.TAMANHO) THEN
    BEGIN
        HISTORICO = HISTORICO||' TAMANHO:'||OLD.TAMANHO||'->'||NEW.TAMANHO;
    END

    IF (OLD.CAMPOS_TABELA <> NEW.CAMPOS_TABELA) THEN
    BEGIN
        HISTORICO = HISTORICO||' CAMPOS DA CONSULTA ALTERADOS!';
    END

    IF (OLD.CAMPO_RETORNO <> NEW.CAMPO_RETORNO) THEN
    BEGIN
        HISTORICO = HISTORICO||' CAMPO DE RETORNO:'||OLD.CAMPO_RETORNO||'->'||NEW.CAMPO_RETORNO;
    END

    IF (OLD.CAMPOS_SUBTABELA_INC <> NEW.CAMPOS_SUBTABELA_INC) THEN
    BEGIN
        HISTORICO = HISTORICO||' CAMPOS DA TABELA DE SELECAO ALTERADOS!';
    END

    IF (OLD.AUTOLOAD <> NEW.AUTOLOAD) THEN
    BEGIN
        HISTORICO = HISTORICO||' CARREGAR:'||OLD.AUTOLOAD||'->'||NEW.AUTOLOAD;
    END

    IF (OLD.CAMPO_GRAVAR <> NEW.CAMPO_GRAVAR) THEN
    BEGIN
        HISTORICO = HISTORICO||' CARREGAR:'||OLD.CAMPO_GRAVAR||'->'||NEW.CAMPO_GRAVAR;
    END

    IF (OLD.CAMPO_VISUALIZAR <> NEW.CAMPO_VISUALIZAR) THEN
    BEGIN
        HISTORICO = HISTORICO||' CARREGAR:'||OLD.CAMPO_VISUALIZAR||'->'||NEW.CAMPO_VISUALIZAR;
    END

    IF (OLD.DESC_TABELA <> NEW.DESC_TABELA) THEN
    BEGIN
        HISTORICO = HISTORICO||' DESC. DOS CAMPOS DA CONSULTA ALTERADA!';
    END

    IF (OLD.CAMPOS_VINCULO_DEPENDENCIA <> NEW.CAMPOS_VINCULO_DEPENDENCIA) THEN
    BEGIN
        HISTORICO = HISTORICO||' VINC. DOS CAMPOS DA CONSULTA ALTERADO!';
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = 'CONFIGURACOES DE CONSULTA DO CAMPO '||OLD.WORKFLOW_CAMPO_ID||' ALTERADAS:'||HISTORICO;

         INSERT INTO TBHISTORICO (
         TABELA, TABELA_ID, USUARIO, IP, HISTORICO) VALUES (
         'TBWORKFLOW_TAREFA', NEW.WORKFLOW_TAREFA_ID,
        (SELECT FIRST 1 MON$USER FROM MON$ATTACHMENTS WHERE MON$ATTACHMENT_ID = CURRENT_CONNECTION),
        (SELECT FIRST 1 MON$REMOTE_ADDRESS FROM MON$ATTACHMENTS WHERE MON$ATTACHMENT_ID = CURRENT_CONNECTION),
         :HISTORICO);
    END
END
^

SET TERM ; ^

