Curso de ADO.NET e BDP - Final

Acesso a dados no Delphi 8 for .NET

 

Final – Usando Stored Procedures

Nesta última parte do curso de BDP, veremos como usar Stored Procedures com o Delphi 2005 e ADO.NET.

O que são Stored Procedures

Normalmente, em uma estrutura client/server, o hardware do servidor sempre será o mais robusto, então podemos utilizar esse hardware para realizar o processamento mais pesado da aplicação, como inserção, atualização e exclusão dos dados através de Stored Procedures (SP) ou mesmo para realizar cálculos mais complexos.

Stored Procedures são basicamente comandos SQL que residem no servidor. A aplicação cliente se encarrega de passar os valores para seus parâmetros e executar o procedimento. O servidor pode então otimizar os planos de execução, garantindo que Stored Procedures sejam processadas de forma cada vez mais rápida. Ele faz isso preparando e pré-compilando procedimentos, pois somente os parâmetros (e não toda a instrução SQL) são passados do cliente para o servidor.

Criando uma Stored Procedure

No código a seguir temos um exemplo de criação de uma SP que retorna em um parâmetro de OUTPUT o total de vendas (Sales) realizadas por determinado empregado, passado no parâmetro de INPUT (Emp_No):

 

create procedure TOTAL_VENDAS_EMPREGADO (

EMP_NO smallint)

returns (TOTAL numeric(15,2))

as begin

select sum(TOTAL_VALUE) from SALES

where SALES_REP = :EMP_NO into :TOTAL;

end

 

Para testar esse exemplo, crie essa SP no banco de dados Employee.gdb que é distribuído juntamente com o Interbase. Você pode usar o IBConsole para executar o comando.

Acessando a Stored Procedure

No Delphi 2005, inicie uma nova aplicação do tipo Windows Forms Application – Delphi for .NET. Arraste a conexão Employee a partir do DataExplorer, para criar um BdpConnection automaticamente.

Coloque um componente BdpCommand, aponte sua propriedade Connection para o BdpConnection1 e CommandType para StoredProcedure. Observe que a propriedade CommandText se ajusta agora para receber o nome da StoredProcedure a ser executada. Escolha TOTAL_VENDAS_EMPREGADO.

 

 

Observe que a propriedade Params já lista os dois parâmetros, de INPUT e OUTPUT.

 

 

Executando a Stored Procedure

Coloque um Button, TextBox e uma Label no formulário:

 

 

No evento Click do botão digite:

 

procedure TWinForm.Button1_Click(sender: System.Object; e: System.EventArgs);

begin

  BdpConnection1.Open();

try

  BdpCommand1.Parameters[0].Value := TextBox1.Text;

  BdpCommand1.ExecuteNonQuery();

  Label1.Text := Convert.ToString(BdpCommand1.Parameters[1].Value);

finally

    BdpConnection1.Close();

end;

end;

 

No código anterior, configuramos o parâmetro de entrada (INPUT) da SP, nesse caso o código do empregado (EMP_NO) a partir do valor digitado no TextBox. A seguir, usamos ExecuteNonQuery para processar a SP no servidor e obtemos o valor de retorno a partir do parâmetro de OUTPUT da SP. O valor é exibido na Label:

 

 

Conclusões

Espero que este curso de BDP e ADO.NET tenha ajudado você desenvolvedor a conhecer um pouco mais sobre essa importante e robusta tecnologia de acesso a dados no Delphi for .NET. Foram 20 partes, onde vimos em detalhes todos os recursos da tecnologia, incluindo arquitetura, conexão, acesso, manipulação de dados, uso de DataSets, DataBindings, ADO.NET com .NET Remoting e Web Services, novos componentes do Delphi 2005 e muito mais. Sinta-se a vontade para entrar em contato comigo pelo e-mail a seguir, para enviar críticas, dúvidas e sugestões. Desejo sucesso a todos nos projetos com o .NET Framework! Um abraço a todos e até a próxima!

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