 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
wjuniordias Profissional


Registrado: Sexta-Feira, 16 de Março de 2012 Mensagens: 667
|
Enviada: Ter Nov 19, 2019 4:57 pm Assunto: Aplicação MDI x DataModule |
|
|
Salve galera,
Aquela velha história, estava fazendo uns testes com aplicação MDI, e como todos já sabem, não é uma boa prática trabalhar com a variável global do DataModule que a IDE cria, sendo necessário criar uma instância do DataModule em cada tela que for usá-lo e em runtime, fazer a ligação de todos os DataSource para esta instância, desta forma, várias telas podem usar as mesmas querys ao mesmo tempo sem que haja interferência em outras telas, visto que cada tela vai estar trabalhando com sua instância do DataModule.
A minha pergunta é, se alguém já conseguiu encontrar alguma outra maneira de lidar com essa questão de forma mais simples, porque atualmente, a parte chata é ter que ficar programando as ligações dos DataSource em runtime, alguém conhece alguma outra maneira?
Grato. _________________ "O sábio nunca diz tudo o que pensa, mas pensa sempre tudo o que diz." (Aristóteles) |
|
Voltar ao Topo |
|
 |
joemil Moderador

Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9100 Localização: Sinop-MT
|
Enviada: Qui Nov 21, 2019 10:32 am Assunto: |
|
|
coloca os DataSets nas telas ao inves de por no DataModule _________________ <b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/ |
|
Voltar ao Topo |
|
 |
johnny-walker Moderador


Registrado: Sábado, 4 de Outubro de 2003 Mensagens: 10653 Localização: Contagem/MG - BRAZIL
|
Enviada: Qui Nov 21, 2019 1:28 pm Assunto: |
|
|
Esta parte é chata mesmo, mas você pode criar tudo no código através de classes.
Eu prefiro trabalhar com datamodule em algumas aplicações, torna-se mais rápido, mas fazer assim muitas vezes torna-se confuso pela quantidade de componentes e também devido as regras comerciais.
Eu deixo apenas um datasource para cada tabela, configuro ele para acessar aquilo que desejo.
e Trabalho desta foirma:
if (O melhor é colocar nos datamodules, caso contrário você terá vários problemas devido a descentralização.
Eu somente coloco no formulário um datasource.Da
Código: | if (TDataSource.DataSet as TClientDataSet).ApplyUpdates(0) <> 0 then
begin
...
...
end
else
begin
... |
Não gosto de trabalhar com MDI, mas se você quiser, mando-lhe o PDV do Renato Matos que se faz tudo por classes e interfaces, assim talvez lhe dê alguma ideia.
bye _________________ P.O.W.E.R B.Y D.E.L.P.H.I |
|
Voltar ao Topo |
|
 |
joemil Moderador

Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9100 Localização: Sinop-MT
|
Enviada: Qui Nov 21, 2019 3:15 pm Assunto: |
|
|
johnny-walker escreveu: |
Não gosto de trabalhar com MDI, mas se você quiser, mando-lhe o PDV do Renato Matos que se faz tudo por classes e interfaces, assim talvez lhe dê alguma ideia.
bye |
esse PDV é open source? to querendo usar interfaces aqui tb _________________ <b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/ |
|
Voltar ao Topo |
|
 |
wjuniordias Profissional


Registrado: Sexta-Feira, 16 de Março de 2012 Mensagens: 667
|
Enviada: Sex Nov 22, 2019 8:23 am Assunto: |
|
|
joemil escreveu: | coloca os DataSets nas telas ao inves de por no DataModule |
Eu até em pensei em fazer isso, mas algumas situações, eu uso o mesmo SQL de uma query em mais de uma tela, ai eu teria que duplicar essa query em outras telas, o problema é que se eu precisar alterar o comando SQL, tenho que lembrar de trocar nos outros lugares tbm  _________________ "O sábio nunca diz tudo o que pensa, mas pensa sempre tudo o que diz." (Aristóteles) |
|
Voltar ao Topo |
|
 |
wjuniordias Profissional


Registrado: Sexta-Feira, 16 de Março de 2012 Mensagens: 667
|
Enviada: Sex Nov 22, 2019 8:29 am Assunto: |
|
|
johnny-walker escreveu: | Esta parte é chata mesmo, mas você pode criar tudo no código através de classes.
Eu prefiro trabalhar com datamodule em algumas aplicações, torna-se mais rápido, mas fazer assim muitas vezes torna-se confuso pela quantidade de componentes e também devido as regras comerciais.
Eu deixo apenas um datasource para cada tabela, configuro ele para acessar aquilo que desejo.
e Trabalho desta foirma:
if (O melhor é colocar nos datamodules, caso contrário você terá vários problemas devido a descentralização.
Eu somente coloco no formulário um datasource.Da
Código: | if (TDataSource.DataSet as TClientDataSet).ApplyUpdates(0) <> 0 then
begin
...
...
end
else
begin
... |
Não gosto de trabalhar com MDI, mas se você quiser, mando-lhe o PDV do Renato Matos que se faz tudo por classes e interfaces, assim talvez lhe dê alguma ideia.
bye |
Legal, não tinha pensado nessa abordagem, eu também não gosto de trabalhar com MDI, é que estou trabalhando em um projeto desenvolvido por outro programador e já foi feito assim, e como não tenho costume de trabalhar com MDI, surgiu essa dúvida.
Se puder me enviar o fonte do PDV eu agradeço muito, com certeza vai me ajudar bastante a tirar alguma ideia. Vou lhe mandar meu email por mensagem particular.
Abraço. _________________ "O sábio nunca diz tudo o que pensa, mas pensa sempre tudo o que diz." (Aristóteles) |
|
Voltar ao Topo |
|
 |
wjuniordias Profissional


Registrado: Sexta-Feira, 16 de Março de 2012 Mensagens: 667
|
Enviada: Sex Nov 22, 2019 3:08 pm Assunto: |
|
|
Boa tarde johnny-walker,
Não estou conseguindo enviar mensagem pra você. Sobre o PDV, se puder, me envie o fragmento da implementação pra eu ter uma ideia.
Muito obrigado mesmo. _________________ "O sábio nunca diz tudo o que pensa, mas pensa sempre tudo o que diz." (Aristóteles)
Editado pela última vez por wjuniordias em Seg Nov 25, 2019 1:31 pm, num total de 1 vez |
|
Voltar ao Topo |
|
 |
johnny-walker Moderador


Registrado: Sábado, 4 de Outubro de 2003 Mensagens: 10653 Localização: Contagem/MG - BRAZIL
|
|
Voltar ao Topo |
|
 |
wjuniordias Profissional


Registrado: Sexta-Feira, 16 de Março de 2012 Mensagens: 667
|
Enviada: Seg Nov 25, 2019 1:32 pm Assunto: |
|
|
Não estou conseguindo acessar, aparece uma mensagem no DropBox dizendo que a "pasta /Delphi" não existe.  _________________ "O sábio nunca diz tudo o que pensa, mas pensa sempre tudo o que diz." (Aristóteles) |
|
Voltar ao Topo |
|
 |
joemil Moderador

Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9100 Localização: Sinop-MT
|
Enviada: Ter Nov 26, 2019 9:48 am Assunto: |
|
|
tb nao consigo baixar
coloca no mega _________________ <b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/ |
|
Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|