Re: [firebase-br] [OFF] - DLL ou BPG - conxãocom o banco - Post Scriptum...
Roger Eduardo
roger.eduardo em gmail.com
Seg Jul 18 10:31:03 -03 2005
Estranho esse tópico, ainda não entendi se é sobre venda de DVD do FDD ou de
como fazer uma DLL reconhecer uma conexão esterna a um BD.
Sobre a venda não sei nada pois nem pude ir no FDD :(
Mas sobre a DLL quero dar uma contribuição:
É possível sim você criar uma DLL que utilize uma conexão que não está
dentro dela. Uma saída seria realmente declarar o DM no uses da DLL, mas
isso é água suja, você ia criar um vinculo entre sua DLL e o DM o que fere o
conceito de que a DLL deve ser reaproveitada para outras aplicações.
Vou mostrar como eu faço.
1º) Eu não uso DLL e sim BPL. As BPLs são nativas do Delphi e como um
ilustre companheiro disse abaixo, as BPLs tem um melhor suporte aos
conceitos da OO. Além disso são muito mais faceis de serem criadas( na
edição 54 da clube delphi tem exemplo completo disso). Mas mesmo que você
queria usar DLLs também será possível.
2º) Eu coloco classes dentro da minhas BPLs(você pode colocar Form, ou
qualquer outra coisa que você queria), Dentro das classes existem
componentes query.
No create das classes eu passo como parametro a conexão.
Como nós trabalhamos como várias formas de acesso a banco de dados, o
parametro que a classe recebe é um TCustomConnection que é a classe mãe de
todos os componentes de acesso a banco de dados( pelo é a mãe de ADO e
DBExpress, que são as duas tecnologias de acesso que eu uso).
Assim sendo um exemplo de código do create de uma classe minha fica mais ou
menos assim:
onstructor TItensProduto.Create(Conexao: TCustomConnection);
begin
if Conexao is TADOConnection then
begin
DataSet := TADOQuery.Create(Application);
TADOQuery(DataSet).Connection := TADOConnection(Conexao);
end
else if Conexao is TSQLConnection then
begin
DataSet := TSQLQuery.Create(Application);
TSQLQuery(DataSet).SQLConnection := TSQLConnection(Conexao);
end;//
end;
Repare que eu crio o query conforme a conexao.
Mas o mais importante é: Dentro da BPL há uma classe, dentro da classe há um
query. E quando eu chamo a classe da BPL, eu passo a conexão. Assim a
conexão pode estar em um DM na minha aplicação e a BPL nem precisa saber que
o DM existe.
Bom espero ter ajudado....
Qualquer coisa manda mensagem em private, pra não encher o saco dos
Companheiros da lista.
On 7/16/05, RedDevil <reddevil em reddevil.eti.br> wrote:
>
> ola Magno,
>
>
> > hehehe eu consegui asistir uma.. a do Jim falando do Vulcan...
>
> eu consegui o som e uma imagem congelada da palestra do Mr. Cantu, desde
> quando ele falou que o FB 2.0 vai aceitar inserts de sub-selects com
> union ate o final da palestra... depois nao consegui mais nada...
>
>
> > [cut] e Dll nao tenho um material muito extenso, só sei
> > fazer... Portanto se eu tiver paciencia pra trampar com isso, vou fazer
> em
> > pacotes (BPG).
>
> se voce aceitar conselhos (os quais sempre vem em sabor gratuito e nao
> fazem nenhum mal...;o), eu te aconselharia a nem se alugar com as DLL's
> e ir direto para os pacotes...
>
>
> > Essa questao do declarar o DM no uses da "DLL", pode ser q funcione sim
> > uai... bom vou testar aki e te dou um toque...
>
> thanks...
> ;o)
>
>
> []s
> força sempre.
> ate +++
>
> --
> Luiz "RedDevil" Stefanski
> http://www.RedDevil.eti.br - Delphi 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
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br <http://www.firebase.com.br>) - Hospedado
> em www.bavs.com.br <http://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