Criação de um cliente do servidor de aplicação em COM+

 

Continuando a seqüência da semana passada quando falamos sobre a concepção de um Servidor de Aplicação baseado em COM+, nesta semana vamos trabalhar na construção de um cliente para este Servidor de Aplicação.

Não se esqueça que este modelo de desenvolvimento é completado pelas outras matérias disponíveis na coluna sobre Multi-Camadas, por tanto não vou abordar questões do tipo como configuração do servidor e distribuição da aplicação cliente, tendo em vista os assuntos já terem sido abordados anteriormente.

Vamos ao que interessa: Menu File, New, Application.

Com o novo formulário, montemos o seguinte Layout:

 

Para Fazermos a conexão com o servidor de aplicação vamos utilizar o componente DcomConnection da palheta DataSnap. Vamos as suas configurações: Abra o combo da propriedade ServerName e procure pela opção AppServer.ClasseDados, que é nome do servidor e da classe que criamos no exemplo de semana passada. Após selecionar o servidor basta passar o valor da propriedade Connected para True.

A primeira chamada demorará alguns segundos, depois é instantâneo. Estamos conectados, passemos ao acesso e manipulação dos dados.

Selecione um ClientDataSet da palheta DataAccess, defina a sua propriedade Name como CdsProdutos, em seguida configure a propriedade RemoteServer com o nome do nosso objeto de conexão com o Servidor de Aplicação, se você não mudou o seu nome, este deve ainda se chamar DComConnection1. Ele também é listado no combo do valor da propriedade.

Como estamos utilizando um DataSetProvider na aplicação servidora para disponibilizar o conteúdo de um DataSet e assim, junto com o ClientDataSet promover o ambiente para navegação e operação com os dados, vamos a definição do valor da propriedade ProviderName que será o nome do DataSetProvider com o qual queremos trabalhar e que está no servidor de aplicação. No nosso caso será o DspProdutos, criado no exemplo da semana passada.

Lembrando que o comando de execução do DataSet no servidor de aplicação precisa de um parâmetro para sua execução, que é o nome parcial do produto; clique com o botão direito do mouse no CdsProdutos e em seguida clique em Fetch Params para adicionar os parâmetros necessários a execução do comando.

 

Em seguida aplique um duplo clique no CdsProdutos e no editor de campos adicione todos os campos, fazemos isto para ganharmos maior progamabilidade visto que os campos são objetos para nós agora.

 

Coloque no formulário um componente DataSource da palheta DataAccess, defina sua propriedade Name como DsProdutos e sua propriedade DataSet como CdsProdutos.

Passemos a configuração do DBGrid: defina a propriedade DataSource com DsProdutos, aplique um duplo clique no DBGrid e no editor de campos adicione os campos DESCRICAO, ESTOQUE e PRECOCOMPRA.

 

Com as configurações básicas prontas, vamos a confecção dos códigos:

Evento OnClick do Botão Consultar:

 

Este código simplesmente fecha o ClientDataSet, passa o parâmetro da consulta e usa o método Open para executar o comando e obter os dados.

Evento OnClick do Botão Deletar:

 

Através do teste de existência de registro para não incorrer em erros, deleta o registro selecionado no DBGrid.

Evento OnClick do Botão Aplicar:

 

Este evento testa o estado do registro selecionado na hora da operação e aplica o método Post caso esteja em edição ou inclusão, isto fazemos antes de enviar as alterações para o Servidor de Aplicação. Armazenamos numa variável a posição do cursor dos registros do DataSet, enviamos as alterações para o Servidor de Aplicação, executamos a consulta novamente e reposicionamos o cursor na posição armazenada do registro do DataSet.

Evento OnClick do Botão Sair:

 

Sem comentários sobre este evento.

Evento BeforePost do CdsProdutos:

 

Este evento ocorre imediatamente antes do método Post ser executado, e como o identificador do produto é gerado no SGBD, preenchemos seu valor com um número qualquer, apenas por este ser do tipo requerido. Mas na verdade o valor utilizado será o gerado pelo SGBD.

Salve tudo e execute a aplicação.

 

Com isso concluímos o nosso estudo sobre concepção de um servidor de aplicação e estação cliente para tecnologia COM+.

No treinamento ClubeDelphi temos toda uma formação para capacitar o participante a explorar os melhores recursos do Delphi para os modelos de desenvolvimento disponíveis hoje. Se você não mora no Rio ou em São Paulo, não tem problema, entre em contato conosco e veja como é fácil levar o Treinamento ClubeDelphi para sua empresa, faculdade, grupo de amigos, etc; em qualquer lugar do Brasil. Caso a sua necessidade seja algo específico, faremos um treinamento personalizado.

Fiquem ligados no TechDay (www.clubedelphi.com.br/eventos/cdtd), este evento está fazendo um tour por algumas cidades do Brasil com uma galera muito boa de Delphi e palestras alucinantes.

Em tempo, obrigado por todos os e-mails que os amigos delphianos tem me mandado, me desculpem as vezes sobre a demora na resposta, espero poder continuar ajudando e sendo ajudado, repartindo para conquistar!

Continuem a mandar e-mails com críticas, dúvidas e sugestões.

Um grande abraço e até semana que vem.