You are on page 1of 7

WebServices em Delphi 7.

0 – By AdeN
Criando o Módulo Servidor:

Inicie um novo projeto no Delphi: Vá ao menu principal e escolha FILE/NEW/Other. Na


paleta WebServices, dê um clique duplo em SOAP Server Application:

Na próxima caixa de diálogo, selecione “CGI Stand-Alone Executable”.


Responda não para a pergunta sobre a criação da Interface for Soap Module. Não há a
necessidade de se criar a interface SOAP, pois estamos desenvolvendo uma aplicação
independente e não um objeto SOAP.

Será criado um Web Module com os componentes abaixo:

Clique em File/Save All para salvar o Web Module. Dê o nome de UwebModule para a
Unit e Server para o projeto.

Vamos criar então o Data Module para configurar os objetos de acesso ao banco de
dados. Clique em File/New/Other, Paleta WebServices e dê um clique duplo em SOAP
Server Data Módule. Digite o nome DM para a Classe, conforme abaixo:

Salve essa Unit com o nome de UdataModule.


Vá á paleta ADO do Delphi, e coloque no DataModule um objeto do tipo ADOConnection
e outro do tipo ADOTable. Configure o conforme abaixo:

ADOConnection
Name: cnAccess
ConnectionString: Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\Webservice\clientes.mdb;
LoginPrompt: False

ADOTable
Name: tbClientes
Connection: cnAccess
TableName: Clientes

Veja que estou usando um banco de dados no padrão MS Access

Vá a Paleta Data Access e coloque um objeto DatasetProvider no Datamodule com as


configurações abaixo:

DatasetProvider
Name: dspClientes
Dataset: tbClientes

Salve seu projeto e compile-o (CTRL+F9). Será gerado um arquivo executável no padrão
CGI. Esse executavel será utilizado pelo módulo cliente.

Para testá-lo, abra o navegador e digite o seguinte endereço:

http://127.0.0.1/webservice/server.exe

Obs:

O endereço IP poderá ser trocado pelo endereço do seu servidor Internet/Intranet.


O alias “webservice” é o nome do diretório virtual onde o server.exe foi configurado para
acesso remoto (configure o IIS ou PWS antes de realizar esse teste).
Ao acionar o endereço no navegador, você deverá obter a seguinte página de resposta:

Isso significa que o servidor já está em modo stand-by. Vamos então criar o módulo
cliente.
Construindo o modulo Cliente.

Escolha no meu principal do Delphi: File/New/Application. Salve o formulário com o nome


de Uform e o Projeto como Cliente.DPR.

Coloque no formulario um componente SoapConnection da Paleta Webservices.


Configure-o conforme abaixo:

Veja que na URL do servidor, foi acrescentado o parâmetro /soap/IappServer ao seu


final. A propriedade Active foi configurada para True.

Coloque um objeto ClientDataset e um DataSource (Paleta Data Access) no formulário e


configure as propriedades conforme abaixo:

ClientDataset
RemoteServer: SOAPConnection1
ProviderName: dspClientes
Active: True

DataSource
Dataset: ClientDataset1
Coloque um DBNavigator, um DBGrid e configure sua propriedade DataSource para
buscar o DataSource1. Você verá então os registros do banco de dados sendo acessados
pelo módulo cliente.

Para que as alterações realizadas no módulo cliente possam ser registradas no banco de
dados do servidor é necessário executar o comando “ApplyUpdates”. Veja como fazê-lo:

No Evento OnAfterPost e OnAfterDelete do ClientDataset1 escreva o código abaixo:

ClientDataSet1.ApplyUpdates(0);

Sugiro ainda colocar o código abaixo no evento OnDestroy do form para evitar perda de
dados na saida da aplicação:

procedure TForm1.FormDestroy(Sender: TObject);


begin
if ClientDataset1.ChangeCount > 0 Then ClientDataset1.ApplyUpdates(0);
end;

Se você for rodar o Modulo Cliente em outro computador, não esqueça de levar junto com o executável o
arquivo MIDAS.DLL. Não será necessário a instalação de nenhum driver de banco de dados na máquina
cliente.

Dica: Se não quiser distribuir a MIDAS.DLL, acrescente a unit MidasLib à cláusula Uses do projeto cliente.
O executável ficará um pouco maior, mas pode compensar o fato de ter de distribuir apenas o arquivo
executável.

Tutorial by Adenilton Rodrigues


aden@aden.com.br
Belo Horizonte/MG

You might also like