DataSnap é uma das grandes novidades no Tiburon. Tenho certeza que vocês ficaram surpresos. Steve Shaughnessy começou a escrever sobre o novo DataSnap.
O novo DataSnap é completamente independente de COM/DCOM com a grande vantagem de utilizar o DBX Framework. Basicamente você irá transferir informações entre cliente e servidor, usando os tipos de dados do DBX Framework data types, também executar métodos através de DataSet e manipular retorno como DBXReader e ClientDataSet.
Criando um servidor
Para criar uma nova aplicação DataSnap, você precisa basicamente de 3 componentes.
- DSServer - Componente que representa o servidor, controla as conexões e permite gerenciar atividades no servidor através dos eventos onConnect, onDisconnect e onError.
- DSTCPServerTransport - Componente reponsável pela transferência de informação entre cliente e servidor, através de uma porta definida em uma propiedade do componente, assim como definir o tamanho do buffer kb.
- DSServerClass - Registra os métodos disponiveis para o cliente..
Mas como disponibilizar os métodos servidores para o cliente DataSnap?
Todos os métodos publicos descendentes de TPersistence podem ser disponibilizados, vale lembrar que a classe deve conter a directiva de compilação {$MethodInfo ON} e ser registrada pelo componente DSServerClass.
Sim, isso funciona com Remote Data Modul.
Abaixo um exemplo, uma classe disponibilziada no meu servidor DataSnap, contém 3 métodos publicos..

Lado cliente
Vamos ver agora o lado cliente. Como conectar e executar métodos no servidor?
A conexão a partir do lado cliente é baseada em DBXClient, isso quer dizer que você precisa apenas de um SQLConnection(dbExpress), definir o nome do servidor, porta e DBXClient driver.
Usando DBXClient como driver você irá obter todas as vantagens do DBX Framework, por exemplo: transferir um DBXReader entre client e server de maneira muito fácil.
Existem vários caminhos para executar métodos no servidor, abaixo alguns exemplos usando os métodos da figura 1.
Executando métodos através do componente SqlServerMethod
Um caminho para executar os métodos no seu servidor é usar o novo componente SqlServerMethod, este componente herda de CustomSQLDataSet, isso permite executar métodos servidor usando DataSet, onde os parâmetros de entrada/saída serão representados pela propriedade Params.

Executando métodos através do componente SQLDataSet
Um novo CommandType chamado DataSnap.ServerMethods foi adicionado ao componente SQLDataSet, permitindo executar métodos no servidor, ao retornar um DBXReader você poderá integrar este retorno a um ClientDataSet e assim ter um cursor bi-direcional.
Essa é uma pequena introdução sobre algumas novidades do novo DataSnap. Fique atento ao nosso blog, mais novidades e exemplos sobre DataSnap virão.
Share This | Email this page to a friend