Esse artigo faz parte da revista Clube Delphi edição 46. Clique aqui para ler todos os artigos desta edição



Atenção: por essa edição ser muito antiga não há arquivo PDF para download. Os artigos dessa edição estão disponíveis somente através do formato HTML.

Multicamadas Passo a Passo

Migre para uma arquitetura baseada em DataSnap no Delphi e Kylix

 

Neste artigo construiremos uma aplicação duas camadas usando dbExpress para acesso ao IB/FB. Depois, passo a passo, faremos a migração para uma arquitetura multicamadas baseada em COM+ e Soap utilizando componentes das paletas DataSnap e WebServices. Durante a migração indicamos cuidados importantes, além de demonstrar algumas técnicas de desenvolvimento multicamadas.

Uma característica fundamental do exemplo será que, após a migração, a aplicação ainda poderá rodar como duas camadas (o código é o mesmo para ambas as arquiteturas). Assim se torna possível fornecer diferentes versões da mesma aplicação, de acordo com a necessidade do cliente: uma pequena empresa poderia optar pelo modelo cliente/servidor, por exemplo, e outra pelo multicamadas.

Observe que o objetivo não é apresentar a utilização do dbExpress ou de componentes DataSnap: nos deteremos na migração. Você pode consultar uma série de artigos relacionados ao tema nas edições 14, 16, 19, 22, 24, 25, 27, 28, e 32. Vale lembrar que a maioria das técnicas demonstradas se aplica não só ao dbExpress mas também a outras tecnologias de acesso, como BDE, ADO, IBX.

 

Criando a aplicação duas camadas

Inicie uma nova aplicação no Delphi e salve todos os arquivos em um novo diretório chamado “Artigo DataSnap” (a partir daqui usaremos esse diretório como padrão). Dê o nome de “uFrm Client.pas” à unit, “Client.dpr” ao projeto e “FrmClient” ao formulário.

Crie um DataModule (“DM”) e salve-o como “Udm.pas”. Adicione a ele um SQLConnection e dois componentes SQLQuery (ambos da paleta dbExpress), além de dois DataSetProviders e três ClientDataSets (DataAcess). Seu DataModule deve estar semelhante ao da Figura 1  (observe os nomes dos componentes). Faça os relacionamentos como mostrado na Figura 2.

 

Figura 1. DataModule da aplicação duas camadas, com dbExpress.

 

Figura 2. Relacionando os componentes do DataModule.

 

Nota: Pode parecer estranho termos dois ClientDataSets ligados a um único DataSetProvider, mas veremos como essa técnica pode poupar a criação de componentes SQLQuery e DataSetProvider

 

Dê um duplo clique no SQLConnection para abrir o editor de conexões do dbExpress. Clique em “+” e defina uma nova conexão Ao InterBase, configurando o parâmetro DataBase como “c:\Arquivos de Programas\Arquivos Comuns\Borland Shared\Data employee.gdb” (caminho padrão). Defina o UserName e o Password; feche o editor e configure a propriedade LoginPrompt como False.

Escreva a seguinte instrução SQL para qryEmployee: “select * from EMPLOYEE” . Dê um duplo clique sobre este componente e adicione todos os campos. Ative o cdsEmployee e também adicione todos os seus TFields. Arraste os TFields para o formulário para que os controles Dataaware sejam criados automaticamente e ajuste os controles como na Figura 3 (dê o nome “”dsEmployee” para o DataSource).

 

Figura 3. Formulário principal da aplicação.

 

Note que para simplificar o exemplo foram omitidos alguns campos. Observe também que usamos DBNavigator e um botão para aplicar a cachê do ClientDataSet. No evento OnClick desse botão deve haver o código: 

 

 

Você não precisa abrir a conexão nem as queries; elas serão abertas automaticamente ao ser executado o Open no ClientDataSet. Você já pode rodar a aplicação e testá-la. ...

Quer ler esse conteúdo completo? Tenha acesso completo