GARANTIR DESCONTO

Fórum Quando usar DataModule #420910

02/08/2012

0

Olá, pessoal.

Estou iniciando meus estudos sobre o Delphi (estou usando a versão mais atual, XE 2) e surgiu a seguinte dúvida: quando e por que eu devo utilizar DataModules?

Vi que geralmente o componente de conexão é colocado em um DataModule, mas qual a diferença de fazer assim e este componente no form principal?

Obrigada.
Rachel Andrade

Rachel Andrade

Responder

Posts

02/08/2012

William

Olá Rachel seja bem vinda ao mundo delphi, o DataModule é uma facilidade que podemos utilizar para trabalhar com acesso a banco de dados, existem situações em que podemos usar 1 ou até mais DataModules. Nele podemos configurar todos os componentes que vão participar da conexão e manipulação dos dados da sua aplicação.

Uma aplicação que trabalha com várias tabelas e procedures, seria necessário configurar um conjunto de componentes (TSQLConnection, (TSQLTabel ou TSQLQuery ou TSQLDataSet), TDataSetProvider, TClientDataSet, TDataSource) para acessar uma tabela, mas já imaginou ser vc quisesse acessar essa mesma tabela em 4 forms diferentes, então esse conjunto de componentes teria que ser configurado 4 vezes sendo uma para cada form. Já usando um DataModule vc pode centralizar toda a conexão e acesso as tabelas do banco, ou seja, vc configura esse conjunto uma vez no DataModule e pode utilizar em quantos forms forem necessários. Sendo necessários apenas declarar a Unit do DataModule na seção interface, na cláusula Uses dos forms onde será necessários acessar os dados da tabela.

Exemplo: 1 banco de dados com várias tabelas, vc pode usar um DataModule só para conexão, outro só para as tabelas do adminstrativo e outra para as tabelas da produção, conforme for necessários vc carrega ou não esses DataModules.

Bom citei aqui exemplos básicos de uso do DataModule, mas existem inúmeras situaçõe em que ele pode ser útil.

OBS.: Esse conjunto de componentes (TSQLConnection, (TSQLTabel ou TSQLQuery ou TSQLDataSet), TDataSetProvider, TClientDataSet, TDataSource)deverá ser utilizado caso vc esteja usando engine de acesso DBExpress, devido aos componentes DataSets serem unidirecionais então se faz necessário o uso do TClientDataSet para navegação bidirecional.
Responder

Gostei + 0

02/08/2012

Deivison Melo

Veja se isso ajuda!

Artigos:


http://www.scriptbrasil.com.br/forum/lofiversion/index.php/t146710.html

https://www.devmedia.com.br/quick-tips-data-module-como-administrar-sua-utilizacao-em-projetos-delphi-parte-i/14048


Video-Aula:

http://www.youtube.com/watch?v=pNeagRo4rFo
Responder

Gostei + 0

02/08/2012

Rachel Andrade

Oi, gente. Muito obrigada pelas respostas, estão me ajudando bastante a entender essa questão do DtaModule.
Então a ideia é centralizar os componentes de acesso ao banco (podendo dividir por contexto), de forma a evitar configurações repetitivas para um mesmo fim?

Grata.
Responder

Gostei + 0

02/08/2012

Bruno Leandro

exato, a ideia é essa de poder centralizar os componentes de acesso ao banco podendo ou não dividir por contexto, por exemplo, financeiro, contabilidade. e evitar de o sistema possuir 10 querys (consultas) iguais ou muito parecidas cada uma em uma tela criando duplicidade e complexidade na manutenção do codigo.
Responder

Gostei + 0

04/08/2012

Marco Salles

Rachel , ainda tem um outro detalhe pouco utilizado.

È indicado separar od dataModulos do Servidor com o dataModulo do Cliente

eles podem se comunicar atraves do TLocalconecction que simula uma separação física da camadas

com isto fica fácil futuramente vc migrar sua aplicação para um arquitetura n-tier utilizando o Datasnap

Imagine vc ter datamodulos com sqlDataset e Clientdataset juntos . imagine vc ter códigos eventos neste mesmo
dataModulo , (vc esta em uma aplicação Local) . Mas resolve colocar isto em um servidord de aplicação
Imagine o trabalho que da separar tudo isto ???

Os mais puiristas preferm utilizar datasnap mesmo para aplicações Locais
Responder

Gostei + 0

03/04/2013

Rachel Andrade

Agradeço a todos pela ajuda. Acabei ficando mais com C# devido a faculdade, mas em breve voltarei oro Delphi.
Mas essa questão do DataModule eu acho que entendi.
Peço que alguém finalize esse tópico, por favor.
Responder

Gostei + 0

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

Aceitar