GARANTIR DESCONTO

Fórum Dúvida de 3 camadas com vários DataModule Remoto #342010

18/05/2007

0

Companheiros, tenho um problema. Na minha aplicação, na camada intermediária, criei vários DataModule Remotos, um Para Cadastros, Outro relatório, Pesquisa e etc... Mas, mantendo sempe um princpal, onde está o objeto de conexão, que no caso, é o SqlConnection(DBExpress). Acontece, que eu criei algumas funções em um destes DataModule e preciso chamar no DataModule Principal. O que passa, sempre dá erro de Undeclared Identifier. Todas as units foram acrescentadas na Cláusula uses da sessão Implementation. Veja um exemplo:

DataModule Principal eu Chamo de: DMServer;
DataModule Cadastro eu Chamo de:DMCadastro;

No DMServer


function DMServer.Get_Cadastro: IUDMCadstro; begin Result := GeralFactory.CreateComObject(nil) as IUDMCadastro; Result.RDMServer := Self; AbrirConexao(Result, IUDMCadastro, TDMCadastro); TIUDMCadastro(GetObject(Result, IUDMCadastro, IUDMCadastro)).GeraObjetos;//GeraObjetos é uma função end;

No DMCadastro
var CadastroFactory: TComponentFactory;//Variável geral initialization CadastroFactory := TComponentFactory.Create(ComServer, Server, Class_ServerCadastro, ciInternal, tmApartment); end.


Ou seja, resumindo, qualquer coisa que faço em um dos DataModules Remotos, seja, variável global, função, procedure, não consigo ver(abrir) em outro DataModule. Declaro uma função e se precisar carregar essa função em outro DataModule Remoto, não vai. Sempre: [color=red:54cdfbb485]Undeclared Identifier[/color:54cdfbb485]


Paulo

Paulo

Responder

Posts

18/05/2007

Brunolspp

Salve amigo!!!

Baixe o meu exemplo do Borland Conference 2006 q mostra como implementar varios datamodules e pool de conexao de forma bem simples e comlpetamente funcional e rápida.

Esta gratuitamente disponibilizado no meu link de downloads gratuitos(abaixo da minha assinatura).

E no mais estou as ordens


Responder

Gostei + 0

21/05/2007

Paulo

Bruno, me responda uma coisa: Eu declaro algumas funções na Unit _TLB, e também algumas property. Se eu der um save all, some tudo. Se eu salvo somente a Unit e fecho, então as funções e property continuam lá. Mas às vezes ao abrir novamente o projeto, desaparece. Também estou com dificuldade de Conectar do Cliente a um DataModule específico, assim: Tenho o RDM Principal(ciMultiInstance) e tres outros Child(ciInternal). No client, coloco um componente SharedConnection. O que passa é que eu não consigo conectar a nenhum dos RDMChild. O que devo colocar na propriedade ChildName do SharedConnection? Grato!!!


Responder

Gostei + 0

22/05/2007

Brunolspp

qual versao do Delphi vc esta usando?

Entao, vc pode usar internal ou nao na instancia, mas eu aconselho usar thread como single.

depois de criado o child, declara um factory do tipo tcomponentfactory na classe child, e na instancia faça com esse factory receba ela(olhe no exemplo do borcon 2006 nas classes de cadastro, consult a e relatorio).

Apos isso, abra a type library, adicione uma noa readonlypropoerty(tem um botao na interface de tlb pra isso).

selecione o type como INomeDaSuaClasse, e salve..

faça isso td na classe principal, no metodo get q este gerara, vc programa o retrono dakele factory fazendo um typecast com a interface(veja a classe principal do evento).

e no cliente basta colocar o socketconnection rpa classe principal, e shared pra cada child, no shared vc configura o a conexao principal e o nome da child e o nome da propriedade readonly q vc criou na tlb na classe principal.

Confira com o exemplo, se vc nao o tem pegue no meu link de downloads gratuitos(abaixo da minha assinatura)


Responder

Gostei + 0

28/01/2016

Augusto Mossambani

Bruno, poderia em enviar um exemplo, não estou conseguindo implementar.... acmossambani@gmail.com
desde já agradeço
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar