quarta-feira, 17 de outubro de 2007

Criando applicação DataSnap com Rem Objects

Fala pessoal,
Finalmente tive um tempinho para postar aqui um exemplo simples de como utilizar o Rem Objects da mesma forma que faziamos com o DataSnap do delphi, porém sem dor de cabeça ;) afinal utilizar o TDComConnection do delphi era realmente uma chatice, pois dependia da tecnologia da ms, que por sua vez era preciso instalar e configurar o dcom nos pcs clientes e no servidor. Com o Rem Objects acabou esses problemas. Vamos parar com a conversa e ir direto ao assunto.

Criando a aplicação servidora.

1º Vá em File -> New -> Vcl Forms Application.

2º Salve seu projeto em uma pasta chamada Servidor.

3º Vá em File -> New -> Other, depois vá em Rem Objects SDK, selecione o RemObjects DataSnap Server Module e click em OK.

4º Renomei seu DataSnap Module e salve o.

5º No form principal da aplicação coloque um Componente TRoIndyHttpServer responsavel pela comunicação entre a aplicação cliente / servidora, um TRoBinMessage utilizado para comunicar entre as aplicações utilizando mensagens em formato binario.

6º Clique no Componente TRoIndyHttpServer, vá na propriedade dispatchers e clique no botão "...", clique em Add, selecione o componente TRoBinMessage no campo Message e feche este editor.

7º Vá para o DataModule criado anteriormente e coloque um componente de conexão, neste exemplo será utiliza o TSqlConnection do DbExpress, configure o normalmente.

8º Coloque um SqlDataSet, sete sua propriedade SqlConnection para o componente SqlConnection criado anteriormente e coloque seu Sql na propriedade commandtext.

9º Coloque um componente TDataSetProvider e sete sua propriedade Dataset para o componente SqlDataSet criado anteriormente.

10º Clique no data module e clique no botão "..." da propriedade Providers.

11º Neste editor clique no botão Add New, clique no novo item criado e sete a propriedade Provider para o DatasetProvider criado anteriormente e sete a propriedade nome para o nome que devera aparecer na aplicação cliente.

12º Sete a propriedade Active do componente TRoIndyHttpServer para True.

13º Compile sua aplicação e execute-a.

Agora vamos criar a aplicação cliente.

1º Vá em File -> New -> Vcl Forms Application.

2º Adicione um componente TRoDataSnapConnection e um TRoWinInetHttpChannel.

3º Sete a propriedade Channel do componente TRoDataSnapConnection para o componente TRoWinInetHttpChannel.

4º Sete a propriedade targetUrl do componente TRoWinInetHttpChannel para http://endereco_ip_servidor:8099/bin. Obs.: a porta 8099 esta configurada e pode ser modificada no componente TRoIndyHttpServer na aplicação servidora.

5º Coloque um componente TRoBinMessage.

6º No Componente TRoDataSnapConnection sete a propriedade Message para o componente TRoBinMessage.

7º Certifique-se de que a aplicação servidor esteja sendo executada e então sete a propriedade connected do componente TRoDataSnapConnection e do TRoWinInetHttpChannel para True.

8º Coloque um componente TClientDataSet e sete sua propriedade RemoteServer para o componente TRoDataSnapConnection e a propriedade provider para o provider criado na aplicação servidor.

9º Coloque um TDataSource e sete a propriedade dataset para o TClientDataSet.

10º Coloque TDBGrid e sete a propriedade datasource para o TDataSource.

11º Ative seu TClientDataset e execute a aplicação.

Pronto sua aplicação 3 camadas já está rodando ;)

Facil e rápido.

Grande Abraço a todos,
até a próxima.

Diego M. Garcia

6 comentários:

celina@interpriseinfocom.br disse...

Ola
Estou usando o Delphi 2006 versao Version 10.0.2151.25345.
Quando voce pede para ir em file new Rem Objects SDK, selecione o RemObjects DataSnap Server Module e click em OK, não consigo achar esse rem objects.
Algum componente tem que ser instalado antes?
Obrigado
Celina Silva
celina@interpriseinfo.com.br

Diego M. Garcia disse...

Sim Celina você precisa instalar o próprio Rem Objects ;)

http://www.remobjects.com

Grande abraço,
Diego M. Garcia

Cesar disse...

Hola diego:

Que tal, todo bien?.
Bueno, mira tengo una propuesta para hacerte...
Que te parece si me dejaras compartir de una manera mas visual a traves videos los ejemplos que propones para que mas personas de habla hispana puedan ver el poder real de remobjects y vean de que se trata toda esta gran tecnologia.
Espero tu respuesta.

Gracias de antemano.
Un abrazo.

Diego M. Garcia disse...

Tudo bem e você Cesar ?
Não vejo nenhum problema meu amigo ;)
Quanto mais pessoas estiverem utilizando melhor ;) pois afinal a o framework é muito bom.
O que você precisar de ajuda conte comigo !

Grande abraço,
Diego M. Garcia

Anônimo disse...

Excelente dica, continue assim!

Filipe Verly disse...

Boa tarde Diego,
fiz exatamente este exemplo executei meu Server, mas no Cliente não aparece nenhum Provider no ProviderName do ClientDataSet, sabe o que pode ser? Obrigado!!!