Ajuda, como criar uma trigger no progress 9.1

Discussão em 'Banco de Dados / Database' iniciado por maia, Novembro 16, 2011.

  1. maia

    maia Sem Pontuação

    Bom dai sou novo aqui no forum, estou começando a trabalhar com progress 9.1, minha duvida e o seguinte tenho uma tabela Teste00, fasso um INSERT nela, gostaria de replicar alguns campos em outra tabela "Teste01" com uma trigger, uso conexão JDBC.
    Fui na propriedade da tabela Teste00, na Table Triggers, Event CREATE fiz da seguinte forma.

    TRIGGER PROCEDURE FOR CREATE OF Teste.
    def parameter buffer p-table for Teste.
    def parameter buffer p-old-table for Teste.

    find first p-table no-lock no-error.
    find first p-old-table no-lock no-error.

    /* Criação da Tabela exn-emitente */
    if new(p-table) then do:

    create Teste01.
    assign Teste01.idTeste = p-table.Cd-Projeto.
    Teste01.campo1 = 'no'.

    end.

    (FIZ ISSO PARA A PRENDER COMO TRABALHAR COM TRIGGER), nao achei nada que fale a respeito de trigger no progress
    Estou começando a trabalhar com Banco de Dados.

    Desde ja agradeço pela atenção.
  2. lunho

    lunho Membro Participativo

    sou novato tbém, porém, é mais facil vc fazer isso atráves de um evento
    do que com trigger.
    tenta fazer assim:
    No evento 'MOUSE-SELECT-CLICK' você pode gravar em uma variável o Rowid do registro.
    Passa este rowid como parâmetro para a outra tela e utiliza para apontar o registro
    para as ações que desejar.
    Código:
    find (tabela) exclusive-lock where
    rowid(tabela) = r-row-table no-error.
    Onde:
    (tabela) = tabela desejada.
    r-row-table = variável com o rowid passado de parâmetro.
    
  3. giandalfovo

    giandalfovo Membro Participativo

    Esta trigger vai ser utilizada pela conexão JDBC/ODBC?

    As triggers criadas no schema 4GL do banco, somente são disparadas por conexões 4GL (cliente padrão do progress).
    Para uma conexão SQL no banco (odbc ou jdbc), estas triggers são armazenadas em um schema separado.
    Estas triggers devem ser criadas no schema SQL utilizando a linguagem java.

    abaixo um link com um exemplo:
    http://ingleses.datasul.com.br/scripts/ ... ?kbid=6950

    nos kbases e documentações da progress você encontra detalhes deste procedimento.
  4. maia

    maia Sem Pontuação

    Ola pessoal, obrigado pela ajuda que estao me dando, estou conectando via jdbc mesmo ... agora mesmo estou vendo que voces passaram, mais tarde posto o que eu fiz, se eu consegui ou nao, e acredito que vou ter mais algumas duvidas.
    Desde ja agradeço pela atenção, e Obrigado.
  5. maia

    maia Sem Pontuação

    Acho que talvez seja melhor eu mostrar o que quero fazer.

    Preciso criar uma trigger no Progress que tenha função semelhante a esta criada em linguagem transact (MySQL).

    Código:
    DELIMITER $$
    
    create trigger `intranet`.`minhaTrigger` AFTER INSERT on `intranet`.`tabelaOrigem` 
    for each row BEGIN
    	INSERT INTO tabelaDestino (campoId) VALUES (NEW.campoId);
    END;
    $$
    
    DELIMITER ;
    Acho que assim facilita a coisa... Se alguém tiver alguma dúvida, posso explicar como funciona a trigger no MySQL.

Compartilhe esta Página