Data Module - Vale a pena?

Delphi

17/11/2004

Sei que pode ser um assunto polêmico, mas o uso do Data Module tem me deixado em dúvida. Motivo: Se vc está usando um form que usa uma query do DM com um determinado parâmetro (por exemplo: passou o parâmetro de Vendedor A) e abre um outro form que utiliza esta mesma query mas passa o parametro como sendo Vendedor B, vc tá ferrando o form aberto anteriormente, não?
Ou, neste caso, tenho que ter nova query para o segundo form?


Crpavao

Crpavao

Curtidas 0

Respostas

Jc_analista

Jc_analista

17/11/2004

Bom faço o seguinte nos meus sistemas, tenho a conexão com o banco de dados e as tabelas de parametros e configurações no datamodule as demais tabelas(query) cada form usa a sua.


GOSTEI 0
Reginaldo174

Reginaldo174

17/11/2004

o Data Module mantem a organização do projeto. imagine como ficaria seu projeto se vc colocasse as query´s em cada form !!! no exemplo citado vc realmente teria de colocar uma outra query. Já vi sistemas que não utilizam o Data Module e na minha opinão é muito trabalhoso...pois se vc criar mais um campo na tabela, terá que atualizar todas as query´s do sistema, e se form um sistema médio isso levará horas até que tenha a certeza de que todas query´s foram atualizadas.

Pense bem antes de dispensar o Data Module.


GOSTEI 0
Crpavao

Crpavao

17/11/2004

Vejam bem.
Eu USO Data Module. Só acho que ele deve ser utilizado tendo várias queries similares para atender forms diferentes. É isto, não é?


GOSTEI 0
Jc_analista

Jc_analista

17/11/2004

Isso mesmo.


GOSTEI 0
Weber

Weber

17/11/2004

Eu também utilizo data module mas no meu caso, como faço tudo na mão (insert, update, delete) tenho somente uma Query. QRCadastro que é utilizada para esses fins. Além de Database e Transaction.


GOSTEI 0
Osocram

Osocram

17/11/2004

Uso dataModule p separar e mais tarde talvez partir p 3 camadas...

Um Datamodule p Cadastro, um p Operacoes (NF,Nota de entrada....), outra p negocios (financeiro) e um p relatorios e mais um p consulta ond geralmente trago as views

e se for p dar manutencao eh mais facil.. se der erro no cadastros enton vc vai mexer no DMCadastro...

E se vc trabalhar c mais d uma pessoa no mesmo projeto... e cada um mexer um DM diferente non dah problema nenhum.

varias coisas boas em usar DM


GOSTEI 0
Dopi

Dopi

17/11/2004

Nao acho que criar várias Querys seja muito prático... Pois nesse caso vc teria que redefinir as propriedades dos campos, como: Displayname, MaskEdit, Cosntrains, etc... ou seja, perde-se o dicionário de dados...

Se a Query que vc precisa no segundo formulário for exatamente igual a que existe no DataModule, vc pode criar uma copia em memória do DataModule ou somente da Query, e depois, via código, mudar os DataSets para apontar para esse novo Datamodule

Ex:

....
  private
    { Private declarations }
    dml    : Tdm ;   { Tdm é o DataModule }
....

//// Criando DATA Moduleprocedure TfrCliente.FormCreate(Sender: TObject);
begin ;
 Temporario, e ligando em dsPrincipal ////
dml := Tdm.Create(self) ;
dsPrincipal.DataSet := dml.tbCliente ;
(dsPrincipal.DataSet as TTable).Open ;

dml.tbFuncionario.MasterSource := dsPrincipal ;
dml.tbFuncionario.MasterFields := ´Cod_cliente´ ;
dsFuncionario.DataSet := dml.tbFuncionario ;
dml.tbFuncionario.Open ;

dml.tbComputador.MasterSource := dsPrincipal ;
dml.tbComputador.MasterFields := ´Cod_cliente´ ;
dsComputador.DataSet := dml.tbComputador ;
dml.tbComputador.Open ;

.....



Nao é necessário destruir o novo DataModule porque o Pai dele (O proprio Form (self) ) irá fazer isso quando ele for destruido...


GOSTEI 0
POSTAR