Fiz um esquema bem prático. Criei uma classe que é a factory de queries e
nessa classe factory há um método estático (class method) pra registrar (ou
associar) uma classe de conexão com uma função que se encarregará de
instanciar a classe de consulta correta para o tipo de conexão.

 

Depois disso, criei uma unit que fará o registro dos tipos de conexão e
classe de consulta respectiva que minha aplicação poderá utilizar. Ficou bem
prático.

 

Tô montando um exemplo de uso disso e assim que estiver pronto, eu vou
postar na área de arquivos da lista pro povo poder atestar a técnica.

 

Sds.

 

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de Roni Rodrigo
Enviada em: terça-feira, 10 de agosto de 2010 12:06
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] Re: Como Associar 2 Classe a uma variavel

 

  

se vc quer só criar as querys, pode usar uma factory:

TQueryFactory = class
class function CreateQry(ConnType: ???): TDataSet;
end;

implementation

class function TQueryFactory.CreateQry(ConnType: ??): TDataSet;
begin
if ConnType = ctBDE then
Result := TQuery.Create(nil)
else if FConnType = ctUniDac then
Result := TUniQuery.Create(nil);
end;

ai vc constroi as classes usando a factory:

q := TQueryFactory.CreateQry(FConnType);

mas dentro da factory, como disse o Márico, vc vai ter que ter um "if" 
ou "case" pra checar qual o tipo de conexão....

o/

Em 09/08/2010 15:25, NTS INFORMÁTICA escreveu:
>
> Eric,
> Na verdade, muitos metodos são comuns as 3 ou mais classes que eu 
> fosse trabalhar, para a conexao com meu dicionario de dados., tenho 
> que fazer isso para compatibilidade de conexões com BDE.
>
> Então eu aproveitaria muita linha de codigo no meu dicionario de dados.
>
> q.DataBaseName // Metodo Somente na Tquery ( Derivado da TDataBase )
>
> q.Connection // Metodo Somente na TUniQuery ( Derivado da TUniConnection )
>
> q.Connection // Metodo Somente na TAdoiQuery ( Derivado da 
> TAdoConnection )
>
> // todos os demais metodos são iguais
> q.SQL
> q.Open
> q.Close
>
> ----- Original Message -----
> From: eric_developer
> To: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br>
<mailto:delphi-br%40yahoogrupos.com.br>
> Sent: Sunday, August 08, 2010 9:18 PM
> Subject: [delphi-br] Re: Como Associar 2 Classe a uma variavel
>
> Marcio,
>
> não vejo sentido lógico no pedido, o IF será necessário mesmo que 
> tivesse chamando somente uma classe, ainda teria que testar FConnType.
>
> Eric Developer Systems
>
> --- Em delphi-br@yahoogrupos.com.br
<mailto:delphi-br%40yahoogrupos.com.br>  
> <mailto:delphi-br%40yahoogrupos.com.br>, NTS INFORMÁTICA <ntsi...@...> 
> escreveu
> >
> > Amigos, existe alguma forma ou maneira para associar classes 
> diferentes a uma variavel, pois
> > muito metodos sao comuns as 2 classes, e outro não, isso seria muito 
> bom para evitar IFs
> >
> > Exemplo Abaixo ?
> >
> > l
> > var
> > q : TComponent;
> > i : Integer;
> > begin
> >
> > if FConnType = ctBDE then q := TQuery.Create(nil);
> > if FConnType = ctUniDac then q := TUniQuery.Create(nil);
> >
> >
> > Márcio
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>



 



[As partes desta mensagem que não continham texto foram removidas]

Responder a