[firebase-br] Inner Join

Felipe Giotto felipe em metasoftware.com.br
Qui Jul 7 08:01:13 -03 2005


Obrigado pela explicação, Otto... Acho que vou procurar uma outra saída, 
para não perder tempo... Só tenho uma última colocação... Quando eu disse 
que utilizava o SELECT em duas tabelas com o BDE, eu sei que o BDE é só uma 
camada entre o banco e a aplicação... No nosso aplicativo, existia uma Query 
que fazia um SELECT baseado em dois Alias que estavam ligados em dois dos 
nossos bancos, gerenciado realmente pelo Firebird 1.5, não pelo Paradox. O 
que estamos fazendo agora é somente migrar dos antigos componentes do BDE 
para os novos componentes do dbExpress, e uma das dificuldades que encontrei 
na migração foi essa query que pega dados de dois bancos diferentes (que, 
inclusive, podem estar em dois computadores diferentes). Por enquanto, irei 
utilizar algum outro recurso para fazer a ligação dos bancos... Porém, caso 
alguém conheça alguma solução mais otimizada, peço novamente que poste na 
lista, para ajudar toda a comunidade que utiliza o Firebird, já que esse, 
pelo visto, é um assunto pouco difundido na lista.

Mais uma vez, obrigado a todos que tentaram achar uma solução!

Um abraço,

Felipe Giotto.

----- Original Message ----- 
From: "Otto" <ottofuch em terra.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, July 06, 2005 9:45 PM
Subject: Re: [firebase-br] Inner Join


>
> Firebird does not support a multi-table query that spans multiple 
> databases.
> Firebird não suporta consultas a múltiplas tabelas que se estendam por
> múltiplos bancos de dados  (Firebird book, página 431).
>
> Firebird supports operations across multiple databases under the control 
> of
> a single transaction. It implements two-fase commit automatically, to 
> ensure
> that the transaction will not commit the work in one database unless it is
> possible to commit it in the others. Data is never left partly updated. O
> Firebird suporta operações sobre bancos de dados múltiplos sob controle de
> uma única transação. Ele implementa automáticamente  um comit de duas 
> fases
> , para assegurar que a transação não seja "comitada" num banco de dados a
> menos que seja possível de "comitar" nas outras. (Firebird Book, página
> 551 - traduzido livremente por mim no ato)/
>
> Nos limites entre estas duas afirmações é que você pode tentar resolver o
> seu problema.
>
> Quando você escreve BDE creio estar-se referindo ao Paradox. Tanto o
> Paradox, quanto o dBase, que são servidos pelo BDE, não são bancos de 
> dados
> verdadeiros, e o BDE chama de banco de dados o diretório em que estão
> instalados. Inserir uma tabela num banco de dados BDE é criar uma tabela 
> no
> diretório, ou copiar ou mover para o diretório uma tabela (que é um 
> arquivo
> terminado em .db ou as diferentes  terminações dos índices e Blobs. Pelo 
> que
> sei, no caso do Jet Engine com Access, não é possível, numa única consulta
> sql, acessar dois arquivos .mdb, já mais próximo do conceito de banco de
> dados, embora muitos não lhe concedem este título.
>
> Tenho curiosidade de saber, se usando o BDE com o Firebird, no caso de 
> dois
> bancos de dados, se o BDE os enxerga como se fossem dois, ou mesmo um 
> único,
> diretório(s).
>
> 100+
> Otto
>
> .
> ----- Original Message ----- 
> From: "Joelson - Souzamark" <joelsonss em yahoo.com.br>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Wednesday, July 06, 2005 7:59 PM
> Subject: Re: [firebase-br] Inner Join
>
>
> Caro Felipe...
>
> sinto muito informar-lhe, mas até onde o meu pequeno conhecimento
> alcança posso lhe dizer q infelizmente o firebird não aceita select em
> 2 bancos, se eu não tiver totalmente enganado vc consegue essa
> façanha se usar o BDE como engine de acesso a dados, mas seria
> mais rápido se vc anotasse os dados com uma caneta e um papel,
> rsrsrs (brincadeirinha heim)...
>
> sem mais
> Joelson
>
>
> ----- Original Message ----- 
> From: "Felipe Giotto" <felipe em metasoftware.com.br>
> To: <lista em firebase.com.br>
> Sent: Wednesday, July 06, 2005 6:19 PM
> Subject: [firebase-br] Inner Join
>
>
> Olá Pessoal!!
>
> Estou com um pequeno grande problema, até agora sem solução. Já postei a
> dúvida antes e não obtive resposta. Estou enviando-a novamente para que,
> caso alguém saiba, poste na lista, por favor!! Preciso fazer um SELECT
> pegando dados de dois bancos de dados diferentes. Quando utilizava BDE, o
> select era feito dessa forma:
>
> SELECT Caixas.CAIXA, Caixas.NUMEQUIP, Caixas.ESPECIE
>
> FROM ":MDADOS:CAIXAS" Caixas
>
> INNER JOIN ":MLOCAL:IMPRESSORA" Impressora
>
> ON (Caixas.CAIXA = Impressora.CAIXA)
>
> Neste caso, MDADOS e MLOCAL eram os meus Alias do BDE... Agora, para cada 
> um
> desses, eu tenho uma SQLConnection... Alguém sabe como fazer esse tipo de
> SELECT, que una dois GDBs diferentes??
>
> Obrigado,
>
> Felipe Giotto.
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> -- 
> No virus found in this incoming message.
> Checked by AVG Anti-Virus.
> Version: 7.0.323 / Virus Database: 267.8.8/37 - Release Date: 01/07/2005
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço 
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> 





Mais detalhes sobre a lista de discussão lista