Multiplos Datamodules

Delphi

04/03/2004

Olá todos do forum.
Estou com varias duvidas que solucionada pode ajudar muitos desenvolvedores e espero que todos que puderem ajudar o façam.
Deixe-me mostrar a situação: Estou desenvolvento um sistema comercial que possui varias tabelas e pode vir a possuir muito mais.
As duvidas são as seguintes: Um datamodule possui limitação de quantidade de componentes query ele pode conter? Se eu distribuir minhas queries em varios datamodules (um para tabelas como de clientes, convenios, empresas; outro para tabelas relacionadas com a tabela de produtos) vou ter algum ganho em performance, pois só vou criar o respectivo datamodule que o mesmo for necessario?
Espero que se essas duvidas forem respondidas, possam ajudar não só a mim mas varios outros desenvolvedores.
Atenciosamente

Flaviosan :P


Flaviosan

Flaviosan

Curtidas 0

Respostas

Lucas Silva

Lucas Silva

04/03/2004

Um datamodule possui limitação de quantidade de componentes query ele pode conter?

Já coloquei muitos componentes em um DM, e nunca aconteceu nada não...
Acredito que não tem limitação.


Se eu distribuir minhas queries em varios datamodules (um para tabelas como de clientes, convenios, empresas; outro para tabelas relacionadas com a tabela de produtos) vou ter algum ganho em performance, pois só vou criar o respectivo datamodule que o mesmo for necessario?

Com ceteza... Eu trabalho assim... p/ cara tela eu tenho um data module, que eu crio só na hora que a tela é aberta.....


GOSTEI 0
Flaviosan

Flaviosan

04/03/2004

Alguem mais pode ajudar?

Flaviosan :P


GOSTEI 0
Flaviosan

Flaviosan

04/03/2004

Será que ninguem mais tem uma opinião a expor aqui...é uma pena.
Muito obrigado Lucas Alves Silva pela sua ajuda.

Flaviosan :(


GOSTEI 0
Lucas Silva

Lucas Silva

04/03/2004

Desta forma que eu te falei fica muito legal......


Tipo assim....

Você tem um cadastro de clientes e o relatorio de cliente, então você cria um DM cliente e coloca estas duas queries (qrycliente, qryrelcliente);


Fica muito organizado......


GOSTEI 0
Flaviosan

Flaviosan

04/03/2004

Obrigado Lucas pela sua atenção.

flaviosan :)


GOSTEI 0
Tnaires

Tnaires

04/03/2004

Gosto muito d separar os tipos d queries em DataModules diferentes. Normalmente, meus sistemas acabam com dois: um para os cadastros e outro para os relatórios. Gosto tb d criar as janelas só na hora d usá-las e liberá-las da memória ao final, mas não recomendo fazer o mesmo com os DataModules. É bom criá-los no início, e somente uma vez, para os DataSets ficarem eternamente dispostos para uso.
Se formos usar muitos DataModules, e se criarmos só na hora d usá-los,
precisamos ter cuidado redobrado para aquelas telas d cadastro q envolve mais d uma tabela (exemplo clássico: pedidos - itens pedido). Isso pq um DataSet pode não estar instanciado qdo for necessário gravar dados na sua tabela.
Enfim, essa questão depende muito do paradigma do programador. Mas lembramo-nos: se um determinado recurso sempre esteve presente nas versões do Delphi, então é pq ele carrega grande utilidade.
Abraços


GOSTEI 0
Flaviosan

Flaviosan

04/03/2004

Olá tnaires, bem exclarecedora sua opinião.
Me diz uma coisa, qual é o modo mais seguro de criar e destruir Datamodules em tempo de execução?
Agradeço antecipadamente.

Flaviosan :P


GOSTEI 0
Lucas Silva

Lucas Silva

04/03/2004

precisamos ter cuidado redobrado para aquelas telas d cadastro q envolve mais d uma tabela (exemplo clássico: pedidos - itens pedido).


Com certeza, eu tenho telas que necessitam de 3 ou mais datamodules..... eu crio os 3 quando a tela é criada e deleto quando a tela é destruida...

Enfim, essa questão depende muito do paradigma do programador

Existem muitas formas de programar, cada programador, escolhe o que acha melhor p/ utilizar em seus programas...

flaviosan,
tipo que a pergunta não foi pra mim, mais.....
 // na hora de criar;
 datamodule := TDatamodule.Create(nil);


 // na hora de destruir;
 datamodule.Free;



GOSTEI 0
Flaviosan

Flaviosan

04/03/2004

Muito obrigado Lucas, e me desculpe, eu devia ter perguntado para todos do forum. Valeu pela resposta, quanto mais melhor!
Só mais uma coisa: antes de criar o datamodule, acho que devo testar se ele ja existe, certo? Veja se o seguinte codigo serve :
if Datamodule = nil then
Datamodule := TDatamodule.Create(nil);

Flaviosan :P


GOSTEI 0
Lucas Silva

Lucas Silva

04/03/2004

serve sim.....
eu uso este código também....


GOSTEI 0
Flaviosan

Flaviosan

04/03/2004

Olá pessoal.
Do jeito que o Lucas mostrou eu nao consigo criar o datamodule.
alguem sabe o que pode estar acontecendo? Há outro modo de criar o datamodule em tempo de execução?
agradeço antecipadamente.

Flaviosan :P


GOSTEI 0
Tnaires

Tnaires

04/03/2004

Olá pessoal
Hmmm... Acho que vc deveria fazer assim:
if Datamodule = nil then 
  Datamodule := TDatamodule.Create(Application);  // e não nil

Ou vc ainda pode tentar usar o método Application.CreateForm.
Reescrevendo:
if Datamodule = nil then 
  Application.CreateForm(TDM, DM);

Supondo que o nome do seu DataModule seja DM.
Abraços


GOSTEI 0
POSTAR