[firebase-br] Dúvida SP

Andrei Luís compuvale.software em gmail.com
Qua Jun 25 17:22:25 -03 2008


A partir do FB 2.1 existe o recurso Update or Insert Into....  que faz
exatamente isso que você quer.

Dá pra fazer com SP tb. Tem que fazer um select buscando a primary key da
tabela em questão, com um if você testa o retorno do select se for null,
executa um insert, se não for null faz o update. Vai ter que passar todos os
campos que deseja atualizar / inserir. Tipo:

SET TERM ^ ;
CREATE OR ALTER PROCEDURE TESTE (
    WPK integer,
    woutrocampo varchar(10))
as
declare variable wreg integer;
begin
   Select primary_key from minha_tabela where primary_key=:wPK into wreg;
   if wreg is null then
      insert into minha_tabela (primary_key, campotal)
values(gen_id(gen_minha_tabela, 1), :woutrocampo);
   else
      update minha_tabela set campotal=:woutrocampo where primary_key=:wpk;

end


Acho que é isso, não testei a SP acima, mas deve funcionar.


[]
Andrei

2008/6/25 .:: Eder Sousa ::. <edersousa em gmail.com>:

> Boa Tarde!!!
>
> Quero criar uma SP onde, eu tento atualizar (UPDATE) um determinado, só que
> este registro pode não estar cadastrado forçando assim a executar um
> INSERT.
>
> Como faço isso??
>
> Abraços,
>
> Eder Sousa
>



Mais detalhes sobre a lista de discussão lista