[firebase-br] Problema ao migrar para FB 2.1.2

Andrei Luís compuvale.software em gmail.com
Qua Jun 17 15:21:46 -03 2009


Boa tarde,

Estou começando a migrar minhas bases pra FB 2.1.2 e já na primeira estou
com problemas.

Lendo o artigo 'Migrando um bd para o FB 2.1' que está no site, resolvi
adotar o método B. Bem, extraí o metadata no FB 1.5.5, fui rodar no IBExpert
sobre o FB 2.1.2, e pra minha surpresa recebi msg de erro na criação de três
triggers simples, que antes rodavam perfeitamente:

SET TERM ^ ;

/* Trigger: NOTASFISCAISITENS_AD0 */
CREATE TRIGGER NOTASFISCAISITENS_AD0 FOR NOTASFISCAISITENS
ACTIVE AFTER DELETE POSITION 0
AS
declare variable wsequencia integer;
declare variable wregistro_id integer;
begin
   wsequencia = 1;
   for select registro_id from notasFiscaisItens where
notafiscal_id=old.notafiscal_id order by sequencia into wregistro_id do
      begin
         update notasFiscaisItens set sequencia = :wsequencia where
registro_id=:wregistro_id;
         wsequencia = wsequencia+1;
      end
   delete from pedidosItensFaturados
         where notafiscalitem_id=notasFiscaisItens.registro_id;
*********** aqui ocorre erro dizendo que a coluna registro_id não existe
   if (old.pedidoitem_id is null) then
      begin
         delete from produtoshist where
produtoshist.nota_fiscal_item_id=old.registro_id;
      end
end
^

/* Trigger: NOTASFISCAIS_BD0 */
CREATE TRIGGER NOTASFISCAIS_BD0 FOR NOTASFISCAIS
ACTIVE BEFORE DELETE POSITION 0
as
begin
   delete from notasfiscaisitens
      where notasfiscaisitens.notafiscal_id=notasfiscais.registro_id;
*********** aqui ocorre erro dizendo que a coluna registro_id não existe
end
^

/* Trigger: ORCAMENTOS_BD0 */
CREATE TRIGGER ORCAMENTOS_BD0 FOR ORCAMENTOS
ACTIVE BEFORE DELETE POSITION 0
as
begin
   delete from orcamentositens
      where orcamentositens.orcamento_id=orcamentos.registro_id;
   delete from pedidositens
      where pedidositens.orcamento_id=orcamentos.registro_id;   ***********
aqui ocorre erro dizendo que a coluna registro_id não existe
end
^

SET TERM ; ^



Bem, pelo que vi, se trocar o nome da tabela que referencia o campo pela
variável de contexto old, o código é aceito.

Pergunta 1: essa é uma característica é nova no FB 2.x?
Pergunta 2: pelo que entendo isso não vai mudar a funcionalidade das
triggers, correto?

-- 
[]s
Andrei



Mais detalhes sobre a lista de discussão lista