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 Se você precisar fazer
alguma alteração na conexão com o banco de dados -É por isto que o
modelo em 3 camadas torna a sua aplicação mais É 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 :
|
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