ClipaTec Informática

Receba novidades por e-mail. Digite seu e-mail abaixo e clique no botão "Cadastrar"

Delivered by FeedBurner

28 de fevereiro de 2018

Cadastro Delphi POO + MVC + DAO - Camada DAO - Parte 4

delphi crud poo mvc camada dao

Salve, salve galeraaaaa. Estamos de volta nesta saga, e neste artigo iremos continuar a implementação da camada DAO Cliente. Sem perca de tempo, com o projeto aberto no Delphi, vamos dar continuidade. No artigo anterior, implementamos os métodos "GerarID" e "Pesquisar". Seguindo a ordem das declarações, agora vamos implementar o método "CarregarCliente". Segue a implementação:

delphi crud poo mvc camada dao


Na linha 64 estamos declarando uma variável de instância do tipo TSQLDataSet para que possamos executar nossa instrução SQL. Estamos mostrando as duas formas para que você possa optar por qual usar, seja adicionando o componente diretamente no Data Module ou criando em tempo de execução.
Na linha 66 criamos ele na memória, na linha 68 conectamos o componente com o banco de dados, visto que, esta conexão está encapsulada no componente "sqlConexao" que por sua vez, está dentro do Data Module "DmConexao". Da linha 69 a 71, estamos atribuindo ao componente, nossa instrução SQL, alimentando o parâmetro do SQL com o parâmetro passado pelo método. Como vocês observaram, este método pede o parâmetro "oCliente" do tipo "TCliente", ou seja, um objeto "Cliente" será passado por parâmetro e o método vai alimentar os atributos deste objeto com os valores que serão recuperado do banco de dados através da instrução SQL. Então, na instrução SQL, estamos buscando todas as informações referentes ao cliente cujo código foi passado pelo parâmetro "iCodigo".
Se você observar, está ocorrendo um erro no tipo "TCliente", isso ocorre porque precisamos dar uses em nossa camada Cliente Model, pois a classe TCliente está declarada nela, então, pressione "Alt + F11" e selecione a unit "uClienteModel", deixe marcado a opção "Interface" e dê "OK".
Legal, agora o erro no tipo TCliente sumiu. Continuando a explicação do método, da linha 75 a 82, estamos recuperando a informação retornada do SQL e atribuindo para as propriedades do objeto. Na linha 85, apenas liberamos o objeto TSQLDataSet da memória.

Repare que o objeto "oCliente" não foi instanciado, porque o mesmo já vai estar criado em outra camada, então, este parâmetro representa o objeto já criado, apenas estamos alimentando as propriedades dele com as devidas informações retornadas pela execução do SQL.
Agora vamos implementar o método "Inserir":

delphi crud poo mvc camada dao


Este método, também pede um parâmetro do tipo "TCliente", que nada mais é que o objeto já criado contendo informações, onde estas informações serão lidas e gravadas no banco de dados. O segundo parâmetro, é um parâmetro de saída, isso significa que, após a execução do método, este parâmetro irá conter uma informação, é importante ressaltar que parâmetros do tipo "var" e "out", podemos dizer que é um container para uma varável que já existe do outro lado, de onde está sendo chamado este método. Vamos entender melhor isso nas implementações dos métodos da camada "view".
Na linha 126, estamos usando o componente "sqlInserir" que está no "DmCliente" que já está configurado com a instrução SQL que fizemos na parte 2, e também estamos usando o objeto "oCliente" passado por parâmetro.
Na linha 128, estamos alimentando o primeiro parâmetro do SQL, que é o campo "ID" existente na tabela "Cliente" do banco de dados. Note que estamos chamando o método "GerarID", que como vimos, irá gerar o código sequencial e retorná-lo para quem está chamando.
Da linha 129 a 132, estamos fazendo uma pequena verificação, caso o código da cidade seja zero, anulamos o parâmetro, para não ocorrer erro de chave estrangeira, pois a cidade cujo código é zero não existe na tabela "Cidade" do banco.
Resumindo, da linha 128 a 136 estamos alimentando os parâmetros do SQL de Insert com as informações do objeto Cliente. Na linha 138 tentamos persistir esses dados no banco, se nenhuma exceção for levantada, a função retorna True, ou seja, verdadeiro, deu tudo certo, caso contrário, cairá na exceção, a mensagem de erro será capturada pelo bloco "except" na linha 142, e a função, retornará False, ou seja, Falso, deu algo errado.

Muito bem galera, vamos parando por aqui, no próximo artigo, vamos concluir a implementação da camada DAO Cliente. Até lá, abraço.

Este artigo faz parte da série Cadastro em Delphi POO + MVC + DAO;

(Por ClipaTec Informática)

0 comments:

Postar um comentário

Visite nossa página de Política de comentarios antes de comentar para ter certeza de que seu comentário não será excluído! Lembre-se, assim que aprovarmos o teu comentário ele será publicado, por isso, não deixe de sempre visitar nosso blog e conferir nossa resposta ao seu comentário, abraço!