Curso de ADO.NET e BDP - Parte XVIII

Acesso a dados no Delphi 8 for .NET

 

Parte XVIII – Parte 18 – Novos componentes do BDP no Delphi 2005 - Criação de aplicações distribuídas com .NET Remoting e ADO.NET e live-data em providers não-BDP

Neste artigo damos continuidade ao nosso curso sobre ADO.NET e veremos como usar os novos componentes do BDP adicionados no Delphi 2005.

Novos componentes do BDP

O BDP teve excelentes melhorias no Delphi 2005. Foram adicionados novos componentes, conforme mostrado na figura a seguir:

 

 

O BdpCopyTable também é novo e será discutido em futuros artigos.

Os novos componentes DataSync  e DataHub .tem basicamente duas funcionalidades:

  • Permitir a criação de aplicações de DataSets distribuídos (imagine isso como um DataSnap para ADO.NET usando .NET Remoting);
  •  Adicionar suporte a Live-Data para outros providers do ADO.NET! É isso mesmo, o recurso de Live-Data, que permite a visualização de dados em controles em tempo de design (antes só suportado pelo BDP), agora pode ser usado com os demais providers para ADO.NET (SQL Server, Oracle, OleDb, Odbc, Firebird etc.)

Live-Data no mundo “não-BDP”

Vejamos como isso funciona: o DataSync gerencia uma coleção de DataAdapters, que podem ser de qualquer provider (SqlDataAdapter, OleDbDataAdapter etc.). Basta colocá-lo no formulário e referenciar os DataAdapters na propriedade Providers. A seguir, você pode colocar um DataHub, apontar seu DataPort para o DataSync, referenciar um DataSet e ativá-lo. Pronto! Agora você tem Live-Data para qualquer provider ADO.NET. O DataHub funciona como uma “ponte” entre o DataSync e um DataSet. A figura a seguir mostra o recurso utilizado em uma aplicação ASP.NET usando o provider do ADO.NET para SQL Server:

 

 

BDP/ADO.NET e .NET Remoting

A utilização desses componentes é ainda mais poderosa para a construção de aplicações distribuídas. A Borland criou para o ADO.NET algo muito semelhante ao que temos hoje no DataSnap. Isso é possível utilizando os dois componentes mostrados anteriormente em conjunto com os novos componentes RemoteServer   e RemoteConnection .

Criando o servidor

Primeiro é preciso criar a aplicação servidora e configurar normalmente uma conexão ao banco de dados (usando o BDP ou outro provider). Voe pode usar para isso uma aplicação Windows Forms. Adicione alguns DataAdapters para consultar / atualizar tabelas do BD. Colocamos um DataSync e na sua propriedade Providers referenciamos os DataAdapters.

 

 

Colocamos um RemoteServer, configuramos o ChannelType (Tcp ou Http), a porta, o DataSync (apontando para o DataSync1) e AutoStart para True.

 

 

A partir daí, os DataAdapters podem ser “enxergados” por uma aplicação remota. Fazendo uma analogia com o DataSnap, o DataSync nesse caso funciona como um DataSetProvider, que provê acesso remoto aos DataAdapters (que são semelhantes às Queries da VCL).

Veja como ficou o servidor:

 

 

Criando o cliente

No lado cliente da aplicação, que também será do tipo Windows Forms, usamos um RemoteConnection para conectar ao servidor anterior (que deve permanecer em execução). Configuramos as propriedades ChannelType, Port, ProviderType (de acordo com os valores configurados no servidor) e URI para RemoteServer1.

 

 

Para “enxergar” os DataAdapters do servidor referenciados pelo DataSync, colocamos um DataHub e configuramos seu DataPort para RemoteConnection1, apontamos para um DataSet e o ativamos. Pronto! Temos agora acesso aos DataAdapters do servidor remoto.

 

 

Com isso é possível criar aplicações distribuídas de BD usando ADO.NET, de forma muito semelhante ao que estávamos acostumados com o MIDAS / DataSnap. A comunicação e troca de dados entre cliente e servidor é feita usando o .NET Remoting. E observe que para isso não precisamos digitar nenhuma linha de código, e ainda existe o suporte a Live-Data em aplicações multicamadas.

Download

Você pode fazer download de todos os exemplos deste curso a partir do endereço http://cc.borland.com/cc/ccweb.exe/author?authorid=222668

Leia todos artigos da série