Re: [firebase-br] Como concatenar o valor de varios registros em um só?

Jeferson Oliveira jefersonfoliveira em gmail.com
Qui Nov 9 15:13:18 -03 2006


Claudir Pereira dos Santos escreveu:
> update Tb_lau set Lau_ObsTecConcat = Lau_ObsTec(registro 1) || ' - '  ||
> Lau_ObsTec(Registro 2)|| ' - '  || Lau_ObsTec(Registro 2)

Mas precisa realmente guardar tal "resumo" no banco de dados.
Me parece mais interessante apenas exibir essa lista quando necessário.


> Sera que existe algo que consiga realizar essa tarefa no firebird.

Sim.
Crie uma SP que concatene o valor do campo e retorne a lista de
valores encontrado para uma determinada chave.
Se precisar realmente gravar pode receber essa lista numa trigger
BeforePost, por exemplo. Se precisar apenas exibir pode relacionar a
SP com a tabela em um select.
Um exemplo:

create procedure SP_LISTA_OBS
    CODIGO integer)
returns (
    LISTA varchar(1024))
as
declare variable AUX varchar(20);
begin
  Lista = '';
  for select L.Lau_ObsTec
      from Tb_lau L
      where L.Pac_Cod = :CODIGO
      into :Aux do
    Lista = :Lista || ' ' || :Aux;
  suspend;
end


Abraço!
Jeferson Oliveira




Mais detalhes sobre a lista de discussão lista