[firebase-br] 2 BD's (p/ RedDevil)

RedDevil reddevil em reddevil.eti.br
Ter Dez 14 00:21:36 -03 2004


ola Denis.
tudo bem contigo?
sincerely, espero que sim.

o que eu fiz ontem foi o seguinte...

suponha que voce tenha dois bancos de dados, um chamado DragonEgg.FdB, no qual tem uma tabela povoada chamada "medicamentos", e o outro banco de dados chamado SnakeEgg.FdB, no qual existe uma tabela vazia chamada "materiais", okeyz?

entao eu coloquei no form dois componentes IB_Connection, ligando-os aos bancos de dados (um para cada banco, evidentemente...;o), dois componentes IB_Query, ligando cada um deles a uma das tabelas (IB_Query1 --->medicamentos, IB_Query2 --->materiais), e tambem coloquei no form um componente IB_Transaction, no qual eu informei o componente IB_Query2 (materiais), e usei a primeira alternativa que voce mencionou, fiz algo semelhante a isso æ abaixo:

{ -------------------------------------------------------- }
IB_Query1.Open;
IB_Query2.Open;

IB_Query1.First;
While Not IB_Query1.EOF Do
Begin

  IB_Query2.Insert;

  IB_Query2.FieldByName( 'codigo' ).AsInteger := 
    IB_Query1.FieldByName( 'codigo' ).AsInteger;

  IB_Query2.FieldByName( 'material' ).AsString := 
    IB_Query1.FieldByName( 'medicamento' ).AsString;
...

IB_Query2.Post;
IB_Query1.Next;

End;

IBTransaction1.Commit;
IB_Query1.Close;
IB_Query2.Close;
{ -------------------------------------------------------- }

agora a pouco eu tentei ver se conseguia fazer a mesma historia usando uma unica IB_Query, na qual coloquei o seguinte SQL:
insert into materiais (codigo, material, valorcusto, valorpmc)
select codigo, medicamento, valorcusto, valorpmc from medicamentos

para tentar passar os dados de uma tabela para a outra em uma unica vez, mas nao consegui fazer a historia funcionar (talvez alguem mais funfado no IBObjects consiga...;o), tipow se a gente deixa a propriedade DataBaseName da IB_Query em branco, da uma msg de erro em um dos BPLs do IBObjects, e se a gente informa um dos componentes IB_Connection (nao sei se voce usa o IBObjects, mas, quando a gente vai informar o banco no DataBaseName da IB_Query, ao inves de ser listado IB_Connection1 e IB_Connection2, ele lista o nome do banco, algo assim: "C:\Database Home\SnakeEgg.FdB"), da um erro dizendo que falta a tabela que esta no outro banco...

e, para finalizar, quanto a performance, eu nao posso te dizer nada de concreto, pois o teste que eu fiz foi com uma tabela com poucos registros e usando um micro ja tido como obsoleto (um P2 350... apenas para o meu micro nao entrar em umas de azarar comigo por eu chama-lo de obsoleto, vou acrescentar que para mim, para os trabalhos que eu trago do hospital para fazer aqui ele eh excelente, eh mais do que suficiente...;o).


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

Luiz "RedDevil" Stefanski
=======><=========
====> Delphi 4 <=====
====> powered <=====
======> by <=======
===> IBObjects <=====
=======><=========
more in:
http://www.RedDevil.eti.br (home)
http://www.firebase.com.br/cgi-bin/firebase.cgi/artigo?ID=630 (instalaçao)
http://www.firebase.com.br/cgi-bin/firebase.cgi/dnld?ID=165 ("tips")

----- Original Message ----- 
From: "Denis da Silva Guerra" <ministeriokairos em yahoo.com.br>
To: "'FireBase'" <lista em firebase.com.br>
Sent: Monday, December 13, 2004 7:47 AM
Subject: RES: [firebase-br] 2 BD's (p/ RedDevil)

De que forma vc faz isso?
Jogando linha a linha da tabela de query para query?
Ou trazendo os dados de uma vez só de uma query para outra?
Como é a performance?

[ ]'s 
 
~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^ 
Denis da Silva Guerra 
denisdsguerra em yahoo.com.br 
São José do Vale do Rio Preto - RJ 
~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^ . 


Mais detalhes sobre a lista de discussão lista