Buscar

Desenvolvendo aplicações web com interbase 6 e delphi 5 - parte 1/3

nome

Miguel Machado

Colunista ainda sem descrição. Caro colunista, por favor envie-nos sua descrição.

Delphi, InterBase, Aplicações Web

Nos dias de hoje é fundamental que as corporações disponham de seus serviços disponíveis na Internet, cada vez mais faz-se necessário, desenvolvedores com o perfil de desenvolvimento além de Coporativo, mas agora para Web. A fase de ERP foi concretizada! Muito bom, mas e agora e o CRM? Com certeza a disponibilização de informações e serviços na Internet vai fazer com que sua empresa também se lance nesta não mais promessa tecnológica, e sim realidade de nossos dias.

Vamos trabalhar de uma maneira um pouco incomum do dia-a-dia do desenvolvedores de Aplicativos Delphi, geralmente as pessoas utilizam Cached Updates para gerenciar seus dados (uma solução não muito elegante por questões de perfomance), neste artigo utilizaremos um dos objetos mais importantes de um Servidor SQL: Stored Procedure. A "SP's" como são conhecidas, são bastante utilizadas devido a sua velocidade, em nosso exemplo, trabalharemos com rotinas de insert,delete e update, no entanto o poder das Stored Procedures vão muito além disso, você pode criar validações para dados, processos de bath e etc.

Para desenvolver todos os exemplos deste material, você precisará, do InterBase 5.6 ou 6, Delphi 5 e algum servidor Web, podendo ser o Personal Web Server, ou o Internet Information, sendo os dois últimos, requisitos para que possamos simular o ambiente HTTP em nossa máquina local, você não precisará publicar de fato seu aplicativo na Web, primeiro testaremos normalmente local, e quando estiver funcionando bem, aí sim estarás pronto para publicar seu Aplicativo. Para ficar mais simples nossa assimilação irei dividir este artigo em partes, a primeira destina-se somente a InterBase, e como tirar o máximo proveito da perfomance oferecida pelo novo InterBase 6.

Perfomance

Em Aplicativos de missão crítica, a busca pela escalabilidade é uma tarefa ardua nas empresas, um Sistema que roda em 20 clientes, não deve perder vertiginosamente sua perfomance com o ganho de mais 5 clientes, ao contrário, se um aplicativo está pronto para ser escalável a números de usuários contantemente, deve suportar e muito bem qualquer crescimento de seus usuários de acesso.

Preparar bem um aplicativo ainda é a melhor técnica, muitas vezes somos presos a paradigmas mais antigos que o Mainframe, se somos obrigados a migrar nossos conhecimentos a todo o momento, é mais que justo que se evolua nossas visões sobre os Aplicativos, um exemplo prático é: uma interface gráfica que suporta inserte,delete e updtade, com CachedUpdates numa base de 10.000 registros, vai ser muito mais limitado que um outro onde reuna uma inserção separada de um update e um delete. Como implementar isso, através destas ações de delete,inserte e update concentradas dentro de uma StoredProcedure.

Antes de partimos para a técnica vale lembrar que para iserir você vai usar uma interface muito simples, e na hora de excluir ou atualizar? Você deve sempre procurar limitar seu ResultSet, até mesmo na hora de excluir, se o usuário que excluir um "Pedro", é mais fácil ele visualizar todos os "Pedros" de 10.000 registros que o todos os registros, se seu ResultSet trouxer um Pedro, você decide o que vai fazer com o mesmo, excluir ou atualizar. Tudo isso deveria ser levado em conta, não só por aplicações críticas, mas todos os aplicativos, e os que irão rodar na Web, podem ser considerados, do menor que seja, um aplicativo de missão crítica, pois numa corporação, você sabe quem e quantos usam, você até tomou café com um deles hoje, mas na Web, seus usuários podem estar em qualquer parte do mundo.

Stored Procedures

Há várias maneiras de você criar uma StoredProcedure, se você tivesse uma interface gráfica para Interbase como o QuickDesk, ficaria mais fácil, mas você pode optar pelo ISQL ou SQL Explorer se for o caso. Seja onde for, escreva o código abaixo e o execute para criar a nossa Stored Procedure:

CREATE PROCEDURE SP_DIU_CUSTOMER
(OPERACAO INTEGER, CUST_NO INTEGER, CUSTOMER VARCHAR(40), CONTACT VARCHAR(25), PHONE VARCHAR(15), CITY VARCHAR(15) )

AS begin if (operacao=1) then
delete from customer where cust_no=:cust_no;

if (operacao=2) then
insert into customer(cust_no,customer,contact_first,phone_no,city)
values (:cust_no,:customer,:contact,:phone,:city);

if (operacao=3) then
update customer set cust_no=:cust_no, customer=:customer, contact_first=:contact, phone_no=:phone, city=:city where cust_no=:cust_no;
end

Na primeira parte declaramos todos nossos parametros de entrada (INPUT), eles servirão para comunicarmos os clientes a nosso servidor SQL.Sendo estes clietes provenientes da Web de uma Intranet, ou até mesmo rede Local.

A lógica da procedure é extremamente simples, temos um parametro chamado OPERACAO, cuja sua função é determinar qual será o funcionamento da StoredProcedure diante da Aplicação. Caso o valor seja 1, ele irá fazer o delete, se for 2 o insert, para finalizar update se for 3, por isso chamamos de "SP_DIU..."

Observe o funcionamento de nossa Stored Procedure:

Observe a seleção de todos os registros:

Executando a Inserção:

O segundo parametro(CUST_NO), foi passado como zero(0), devido a existëncia de um Trigger para o mesmo, portanto passamos tal valor para evitar erros.

Checando o resultado da operação:

Alterando nossos Dados:

Caso desejes excluir o Customer, passe como parametro de operação '1', e não esqueça do código do customer, pois lembre-se que este é um dos parametros que nossa StoredProcedure necessita.

Todas as rotinas da StoredProcedures foram testadas, e nenhuma apresentou problemas, espero que este artigo tenha lhe ajudado a como tirar um bom proveito dos Objetos que servidores SQL nos oferecem, agora você pode de seu Delphi, criar um DataModule, inserir um Objeto IBDataBase, juntamente com um objeto IBTransaction, e trabalhar com seus objetos IbStoredProc, você verá o quanto em perfomance seu Aplicativo irá ganhar.

Publicidade

Vote no artigo




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes do artigo

Categoria: Outros
Adicionado dia: 02/05/05
Por: Miguel Machado
Visualizado: 34179 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009