Olá pessoal! Estou migrando um sistema para Firebird e me deparei com um problema que gostaria de debater com vocês. Tenho um BD que possui as tabelas com os dados de clientes, fornecedores, transportadores e vendedores, além das tabelas de tipos de documentos, plano de contas, bancos, etc. Seria a base principal.
Quando estou na Empresa01 faço um "select" que me retorna o tipo de documento na tabela A017 e a descrição do documento que está na tabela A014, o tipo de fornecedor na tabela A017 e o nome do fornecedor na tabela A001 e por aí vai, vendedores, transportadores, plano de contas, etc. A tabela A017 é de movimentação de contas a pagar, porém no sistema eu trabalho com as Empresas02, 03, "n"... As tabelas padrões são as mesmas, eu mudo apenas os arquivos de movimentação para outro BD. O problema é que eu não sei como fazer isto ou se é possível fazê-lo no Firebird. Ou seja, dar um "select" que busque dados em dois BD's distintos. Quando o banco de dados é o mesmo o "select" abaixo funciona perfeitamente, porém quando mudo para a Empresa02 não funciona, pois não sei buscar as informações das tabelas A014 - A001 - A016 - A011 que estão no BD001. Isto que necessito seria em Postgres, um "DBLink", já andei pesquisando. Se alguém tiver uma sugestão que possa me ajudar mesmo que seja fazer o "DBLink" no Postgress, agradeço desde já. Pois esta está sendo a "pedra no meu caminho" para terminar o sistema, resolvendo isto vários problemas serão solucionados de uma vez só. Estamos saindo do Clipper e DBF. Muito obrigado! Vejam o select que funciona quando o BD é único: select a017.a017_docu, a017.a017_tipo, A014_DESC, a017.a017_dtem, a017.a017_tpfo, a017.a017_forn, A001_NOME, a017.a017_hist, a017.a017_dtvn, a017.a017_vavn, a017.a017_dtpg, a017.a017_vapg, a017.a017_atra, a017.a017_cdbx, a017.a017_banc, A016_DESC, a017.a017_cheq, a017.a017_his1, a017.a017_digi, a017.a017_plan, A011_DESC, a017.a017_dupl, a017.a017_docu as ca017_docu, a017.a017_tipo as ca017_tipo from a001017_tbl a017 left outer join a001014_tbl on (a017.a017_tipo = a001014_tbl.a014_chv) left outer join a001001_tbl on (a017.a017_tpfo = a001001_tbl.a001_tipo) and (a017.a017_forn = a001001_tbl.a001_chv) left outer join a001016_tbl on (a017.a017_banc = a001016_tbl.a016_chv) left outer join a001011_tbl on (a017.a017_plan = a001011_tbl.a011_redu) O que retornaria mais ou menos conforme abaixo: --------------------------------------------------------------------------------------------------------------------- A017_DOCU | A017_TIPO | A014_DESC | A017_DTEM | A017_TPFO | A017_FORN | A001_NOME | --------------------------------------------------------------------------------------------------------------------- 52.521-U | 003 | Duplicatas |16/09/2008 | 001 | 000565 | Santa Maria S/A. | ---------------------------------------------------------------------------------------------------------------------- 36.878-A | 005 | Cheques |16/08/2008 | 001 | 000098 | Papelão & Cia. | ---------------------------------------------------------------------------------------------------------------------- 14.315-B | 001 | Pagamentos |16/09/2007 | 001 | 000001 | Pagamentos diversos | ---------------------------------------------------------------------------------------------------------------------- Adilson Nunes [As partes desta mensagem que não continham texto foram removidas]