VB - Criando uma aplicação em 3 camadas


Ao iniciar a leitura deste artigo você deve estar se perguntando por que eu estou falando novamente neste assunto se já o abordei em detalhes nos artigos :

Bem , os artigos acima tratavam de acesso a dados usando o SQL Server e neste artigo eu vou estar usando o acesso ao Access. Mas o mais importante é que você terá mais uma forma de resolver o mesmo problema. Na verdade não é bem mais uma forma mas apenas outro maneira de focar o problema.

Pois então prepare-se que neste artigo eu vou mostrar como criar uma aplicação com acesso a um banco de dados Access em 3 camadas onde você vai aprender técnicas que irão ajudá-lo a criar aplicações mais robustas e escaláveis e onde o seu código poder ser mais reutilizado.

Vou começar apresentando a interface com o usuário que iremos usar representada pelo formulário onde iremos exibir os dados de clientes . O formulário possui um controle frame contendo um ListBox que exibe uma lista de nomes e sobrenomes de cada cliente. Selecionnando um cliente os detalhes serão exibidos em caixas de texto contidas em outro frame no formulário. Poderemos efetuar as operações de : incluir , editar e excluir dados de um cliente.

A aplicação chama-se : Aplicacao3Camadas e possui os seguintes componentes:

Executando o projeto e selecionando um cliente iremos obter:

Através deste formulário estamos acessando os dados do banco de dados e podemos , como ja falei , incluir , alterar e excluir dados do banco de dados. Podemos dizer que através dele temos acesso a todas as funcionalidades do sistema.

Se você examinar o código do formulário e procurar como estamos fazendo o acesso a dados não irá encontrar nenhuma definição de string de conexão , nenhum provedor , nenhum comando ADO para acesso a dados. Comprove , veja o código do evento Load do formulário:

Option Explicit
'Declarações
Dim Flag As Boolean
Private mobjNegocios As CNegocios
- O código do evento Load do formulário principal da aplicação
apenas faz chamadas a funções e utiliza a classe cNegocios para acessar os dados

- Desta forma você possui um código leve que torna carga da
sua aplicação muito mais rápida

Se você precisar fazer alguma alteração na conexão com o banco de dados
vai precisar mexer somente na classe pertinente

-É por isto que o modelo em 3 camadas torna a sua aplicação mais
fácil de manter .

É isto que iremos mostrar ao longo dos artigos.

Private Sub Form_Load()

Dim vntLista As Variant
Dim intcontador As Integer

'limpa a lista
lstEndereco.Clear

'Preenche a combobox com os estados
Call preencheEstado

'Preenche a combobox com os paises
Call preenchePais

'Desabilita o textbox e combobox
Call desabilitaCampos

'desabilita os botoes salvar e cancelar
Call desabilitaBotoes

' cria uma nova conexao atraves da camada de negocios
Set mobjNegocios = New CNegocios

' atraves das tres camadas estamos executando o sql para preencher
vntLista = mobjNegocios.preencheLista

' ve se o sql retorna algo
If IsEmpty(vntLista) = True Then
     
 'faz algo
Else

   For intcontador = LBound(vntLista, 2) To UBound(vntLista, 2)
       lstEndereco.AddItem vntLista(1, intcontador)
       lstEndereco.ItemData(lstEndereco.NewIndex) = vntLista(0, intcontador)
  Next
End If

End Sub

Um esquema do modelo da aplicação em 3 camadas é exibido na figura abaixo. Nele você percebe que iremos usar como camada de interface um aplicativo EXE e como camada de negócios e camada de dados arquivos Dll´s.

Vou começar então falando da definição do modelo de dados que iremos usar. Ele será bem simples por uma questão de didática , assim ficará mais fácil apreender os conceitos explanados ao longo dos artigos.

Usaremos um banco de dados Access chamado Agenda.mdb. Nele temos a tabela tblEnderecos onde iremos acessar e armazenar os dados da aplicação. A estrutura da tabela e os índices definidos estão exibidos abaixo:

tabela tblEnderecos índices definidos para a tabela

Afim de otimizar nossa aplicação estaremos usando dois procedimentos armazenados :

  • O procedimento armazenado : atualizaEndereco - atualiza os dados do cliente
  • O procedimento armazenado : salvaEndereco - salva as alterações e inclusões de dados

Abaixo o código no modo SQL dos procedimentos armazenados do banco de dados Agenda.mdb :

atualizaEndereco:Consulta atualizacao

UPDATE tblEnderecos SET tblEnderecos.Nome = [n1], tblEnderecos.Sobrenome = [n2], tblEnderecos.Endereco = [n3], tblEnderecos.Cep = [n4], tblEnderecos.Estado = [n5], tblEnderecos.Pais = [n6], tblEnderecos.Telefone = [n7]
WHERE (((tblEnderecos.EnderecoID)=[n8]));
 
salvaEndereco : consulta acréscimo

INSERT INTO tblEnderecos ( Nome, Sobrenome, Endereco, Cep, Estado, Pais, Telefone )
SELECT [n1] AS Expr1, [n2] AS Expr2, [n3] AS Expr3, [n4] AS Expr4, [n5] AS Expr5, [n6] AS Expr6, [n7] AS Expr7;
 

Na segunda parte do artigo irei mostrar como criar as classes do projeto.

Acompanhe aqui : VB - Criando uma aplicação em 3 camadas II


José Carlos Macoratti