Artigo Clube Delphi 61 - Acesso ao InterBase e Firebird

Artigo da Revista Clube Delphi Edição 61.

Esse artigo faz parte da revista Clube Delphi Edição 61. Clique aqui para ler todos os artigos desta edição

 

Atenção: por essa edição ser muito antiga não há arquivo pdf para download desta revista. os artigos disponíveis somente em doc.

Acesso ao InterBase e Firebird

Otimize seu projeto client/server: performance, tráfego de dados, segredos e técnicas avançadas

 

Mesmo com a crescente utilização de sistemas N-Tier (multicamadas) e a popularização da Internet para sistemas Web, o desenvolvimento de aplicações client/server continua sendo um dos projetos mais comuns em Delphi para empresas de pequeno/médio porte. Acredito que muitos de vocês
desenvolvedores já possuem pelo menos uma aplicação desse tipo em produção,de forma que mostraremos neste artigo algumas dicas para utilização em aplicações client/server, acessando o banco de dados InterBase ou Firebird através de dbExpress (você pode usar o Delphi 6,7 ou 2005).

Falaremos sobre chaves-primárias, chaves-estrangeiras, índices, triggers, stored procedures, consultas parametrizadas (essenciais para esse tipo de aplicação), joins, subselects, otimização de tráfego de dados na rede e ajustes de configuração no IB/FB para aumentar
a performance. Também aproveitaremos para mostrar algumas técnicas e segredos de utilização dos componentes ActionList, ClientDataSet e DataSetProvider.

Para este exemplo, vamos criar uma aplicação client/server típica, propositalmente já com algumas falhas. Em cima dela, a seguir, aplicaremos várias otimizações, indicando técnicas avançadas e
cuidados necessários. Se você está apenas começando no mundo duas camadas, vindo de uma solução desktop (Paradox, DBF etc.), também encontrará dicas essenciais neste artigo.

Criando a aplicação de exemplo

Crie uma aplicação VCL no Delphi, adicione ao projeto um DataModule (dê o nome de "DM") e coloque um SQLConnection, um SQLDataSet (paleta dbExpress}, um DataSetProvider e um ClientDataSet (paleta Data Access). Configure o acesso dbExpress ao banco Employee.fdb (FB) ou Employee.gdb (IB),dando um duplo clique no SQLConnection e clicando em "+" para adicionar uma conexão. Aponte o caminho do banco no parâmetro Database (Figura 1).

Nota: os arquivos citados anteriormente são distribuídos juntamente com a instalação do IB/FB.

Aponte a propriedade SQLConnection do SQLDataSet para SQLConnection 1 e ajuste sua propriedade CommandText para "select * from Employee"Aponte o DotaSerdo DataSetProvider para

 

Figura 1. Criando a conexão dbExpress

SQLDataSetI eProviderNamedo ClientDataSet para DataSetProvider 1. Seu DataModule deve estar semelhante ao da Figura 2.

Dê um duplo clique no SQLDataSet e adicione os campos TFields. Ative o ClientDataSet, dê um duplo clique nele e adicione também os Tfields. Selecione todos os campos e arraste-os para o formulário.
Para facilitar, neste exemplo, construímos a interface de usuário apenas com os campos principais.

No formulário da aplicação, adicione um ImageList, um ActionList e alguns BitBtns. Inclua no ImageListal gumas imagens e faça a ligação ao ActionList (propriedade Images). Dê um duplo clique no ActionList, aperte CtrI+Ins e adicione as ações já pré-defínidas da categoria DataSete que serão usadas no exemplo (basicamente as de navegação, exclusão, gravação e Appiy). Ajuste o Captíon, Imageindex e Hint de cada ação, a seu gosto.

Para cada botão, aponte a propriedade Action para uma ação adicionada anteriormente. Note que, com isso, não precisaremos digitar nenhuma linha de código, como por exemplo, chamar os métodos
do ClientDataSet - Append, Delete, AppIyUpdates etc. Tudo é feito visualmente, graças às ações pré-definidas do ActionList.

 

 

Figura 2. DataModule da aplicação client/server

 

Seu formulário nesse momento deve estar semelhante ao mostrado na Figura 3,que é muito semelhante a uma aplicação client/server típica. Rode a aplicação, navegue pêlos registros, altere, inclua ou exclua os registros para ver se está tudo funcionando corretamente, antes de começarmos as otimizações.

 

  

 

Figura 3. Uma aplicação client/server típica

 

Observe que o ActionLis  se encarrega de habilitar/desabilitar os botões conforme a necessidade (por exemplo, desabilitar o botão de gravação se o DataSet não estiver em modo de edição). Nem mesmo
é preciso apontar as Actions para o DataSource/DataSet, o ActionList se encarrega de detectar isso automaticamente.

 

Consultas parametrizadas

 

Se sua aplicação client/server" [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados