[firebase-br] RES: Select em 2 bancos

Carlos H. Cantu listas em warmboot.com.br
Qui Out 7 11:36:20 -03 2010


http://www.firebase.com.br/fb/artigo.php?id=1595

[]s
Carlos H. Cantu
www.FireBase.com.br - www.firebirdnews.org
www.warmboot.com.br - blog.firebase.com.br

RPM> Levy,
RPM> Desculpe a insistência.
RPM> O que eu quer fazer é o seguinte.
RPM> Tenho 2 tabelas em bancos diferentes com a mesma estrutura e quero fazer uma
RPM> select para unir as duas tabelas. Você teria um exemplo disso?
RPM> Obrigado

RPM> Rogério Polizel Mendes
RPM> Fundação Municipal de Ensino de Piracicaba
RPM> TI Administrativo
RPM> Fone: 19-34121116
RPM> E-mail: rpolizel em eep.br

RPM> -----Mensagem original-----
RPM> De: lista-bounces em firebase.com.br
RPM> [mailto:lista-bounces em firebase.com.br] Em
RPM> nome de Levy Moreira
RPM> Enviada em: quinta-feira, 7 de outubro de 2010 10:38
RPM> Para: FireBase
RPM> Assunto: Re: [firebase-br] Select em 2 bancos

RPM> É sim senhor aki esta um exemplo meu:

RPM> --SELECT * FROM FAT  where CLIFAT = 1 and TIPFAT = 'VP'

RPM> execute ibeblock
RPM> returns(  CLINEW integer, CODF integer,CLIF  integer, TIPF varchar(5),
RPM> CLIANT integer, NMCLI varchar(45))
RPM> as
RPM> begin
RPM>         --Cria as conexoes--
RPM>   create connection dbNew dbname 'c:\dados1.fdb' --Banco atual
RPM>   password 'masterkey' user 'SYSDBA'
RPM>   sql_dialect 3
RPM>   clientlib 'fbclient.dll';

RPM>   create connection dbAnt dbname 'c:\dados2.fdb'  --Banco antigo
RPM>   password 'masterkey' user 'SYSDBA'
RPM>   sql_dialect 3
RPM>   clientlib 'fbclient.dll';

RPM>   use dbNew;
RPM>   for execute statement 'select CODFAT, CLIFAT, TIPFAT, CLIANT from "FAT"'
RPM> --Loop  ..
RPM>   into :CODF, :CLIF, :TIPF , :CLIANT
RPM>   do
RPM>   begin
RPM>     if (:CLIF = 1 and TIPF='VP') then --...verificando se a Fat perdeu o Cli
RPM>     begin
RPM>        use dbAnt;
RPM>        select CLIFAT from fat where CODFAT = :CODF  --Verifica o codigo da
RPM> Fat. no bd ant
RPM>        into :CLIANT;

RPM>        select NOME01 from cli where CODCLI = :CLIANT --Pega o nome do cli no
RPM> bd ant
RPM>        into :NMCLI;

RPM>        use dbNew;
RPM>        select CODCLI from CLI where NOME01 = :NMCLI --Pega o codigo do
RPM> cliente no banco atual
RPM>        INTO :CLINEW;

RPM>        update FAT set CLIFAT = :CLINEW where CODFAT = :CODF ; --Seta o
RPM> cliente na Fat
RPM>        commit;
RPM>     end

RPM>     suspend;
RPM>   end

RPM>   close connection dbNew;
RPM>   close connection dbAnt;
RPM> end





Mais detalhes sobre a lista de discussão lista