[firebase-br] Loop em SQL

RedDevil reddevil em reddevil.eti.br
Sáb Nov 19 22:17:09 -03 2005


ola Francisco,

eu conheço duas maneiras de fazer algo semelhante a um "loop" no Firebird para
povoar uma tabela, para popular uma tabela (vamos dar uma força para o
search...;o), e ambas as maneiras sao em SP's (ou Triggers).


digamos que voce tenha uma  tabela chamada "hades", com a seguinte estrutura:

create table hades(
codigo integer not null,
nome varchar(50),
constraint pk_hades primary key (codigo)
);


voce pode usar a seguinte SP para povoar essa tabela:

create procedure persephone
as
declare variable wcodigo integer;
declare variable wnome varchar(50);
begin
 wcodigo = 1;
 while ( :wcodigo <= 100 ) do
 begin
 wnome = 'registro numero ' || :wcodigo;
 insert into hades (codigo, nome) values (:wcodigo, :wnome);
 wcodigo = :wcodigo + 1;
 end
end


e outra maneira de povoar essa tabela eh ler os registros de outra tabela e
gravar eles na tabela que voce pretende povoar, usando para isso a seguinte SP
(neste exemplo, a tabela "atenas" possui a mesma estrutura da tabela "hades".):

create procedure ares
as
declare variable wcodigo integer;
declare variable wnome varchar(50);
begin
for select atenienses.codigo, atenienses.nome
     from atenas atenienses
     into :wcodigo, :wnome
do
begin
 insert into hades (codigo, nome) values (:wcodigo, :wnome);
end
end


[]s
força sempre!!!
ate +++

--
Luiz "RedDevil" Stefanski - Linux User #399026
http://www.RedDevil.eti.br - Delphi 4 Powered by IBObjects
exemplos e dicas sobre o IBObjects:
http://www.firebase.com.br/cgi-bin/firebase.cgi/dnld?ID=165
compilaçao/instalaçao do IBObjects sabor BPG:
http://www.firebase.com.br/cgi-bin/firebase.cgi/artigo?ID=630



----- Original Message -----
From: "Francisco Trindade" <frank.trindade em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Saturday, November 19, 2005 6:07 PM
Subject: [firebase-br] Loop em SQL


Pessoal,
 to querendo fazer uma rotina para povoar uma tabela, porem nao sei como
implementar uma funcao de loop no Firebird (while,for,etc...)
 To usando Firebird 1.5 e IBExpert.
 Alguem poderia me dar uma dica?
 Sds

--
--
Francisco Trindade






Mais detalhes sobre a lista de discussão lista