ClipaTec Informática

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

Delivered by FeedBurner

18 de outubro de 2016

Cadastro Delphi com dataware - modelo 2 - Instruções SQL e implementações do DataModule

delphi sql

Aoooh meu povo. Prosseguindo com nossa série "Cadastro Delphi com dataware - modelo 2", neste artigo vamos fazer toda implementação do nosso Data Module que criamos no "artigo anterior", para que no próximo artigo já iniciarmos a implementação da tela de cadastro. Let's go!
A primeira coisa que faremos, são as instruções SQL que utilizaremos em nossa aplicação de exemplo.
Vamos começar pela pesquisa. Lembre-se que na tela de cadastro que montamos no "primeiro artigo" desta série, disponibilizamos para o usuário três filtros para pesquisa, por código, nome e todos. Então precisamo montar nosso SQL de pesquisa com estes filtros parametrizados. Sem perca de tempo, selecione o componente "sqlPes", clique no botão elíptico (três pontinhos) da propriedade "CommandText", e na janela que abrir, digite a seguinte instrução SQL:
select id, nome, telefone from cliente where (id = :id) or (nome like :nome)
Legal, se você observar, deixamos os dois filtros (por código e nome) prontos. Não vamos entrar em detalhes da linguagem SQL porque este não é o foco desta série. Clique no botão "OK" da janela.
Nem sempre o componente identifica o tipo dos parâmetros, sendo necessário definirmos manualmente. Para isso, ainda com o componente "sqlPesq" selecionado, clique no botão elíptico da propriedade "Params". Uma janela será aberta já com os dois parâmetros identificados. Selecione o primeiro, a saber, "ID", e na propriedade "DataType" selecione a opção "ftInteger". E no parâmetro "Nome", selecione a opção "ftString". Feito isso, já pode fechar a janela.
Agora, dê um duplo clique sobre o componente "cdsPesq" para abrir a janela do "Fields Editor", ou simplesmente clique com o botão direito sobre o componente "cdsPesq" e escolha a opção "Fields Editor...".
Muito bem, na janela que abrir, clique com o botão direito dentro e clique na opção "Add all fields". Note que os campos que passamos na instrução SQL foram adicionados ao componente. Isso facilita na programação quando precisarmos fazer referência à um determinado campo do DataSet.
É importante ressaltar que, não retornamos todos os campos da tabela cliente, somente alguns. Isso se chama otimização de consulta. Sempre no DataSet de pesquisa, apenas trazemos os campos importantes para identificar o registro. Isso diminui o tráfego na rede. Em aplicações pequenas talvez não faça muita diferença, mas uma boa prática/hábito de programação é sempre bem-vindo.
Show de bola, ainda falta um detalhe, precisamos que o componente "cdsPesq" reconheça os parâmetros que definimos no componente "sqlPesq". Então, clique com o botão direito do mouse sobre o componente "cdsPesq" e selecione a opção "Fetch Params".
Ok, agora faça a mesma coisa com o componente "sqlCad", somente a instrução SQL que será diferente. A instrução a ser utilizada sera esta:
select * from cliente where id = :id
Se você é um bom observador, note que agora vamos retornar todos os campos da tabela cliente, isso é óbvio, visto que, como este DataSet será usado para o cadastro, então precisaremos de todos os campos, para que possamo disponibilizá-los na tela de cadastro, para o usuário preencher.
Ao concluir a instrução SQL, apenas adicione os campos no componente "cdsCad", igual fizemos com o "cdsPesq" e reconheça os parâmetros no "cdsCad", lembrando que é necessário adicionar o tipo dele no "sqlCad".
Se você tiver alguma dúvida, ou se perder na caminhada, deixe seu comentários, te ajudaremos com prazer.
Já estamos chegando ao fim deste artigo, agora vamos implementar alguns eventos do nosso DataSet de cadastro, "cdsCad".
Selecione-o, e dê um duplo-clique sobre o evento "AfterDelete". Implemente-o da seguinte maneira:

delphi sql datamodule

Este evento será executado logo após a exclusão de algum registro. A operação será persistida na base de dados e o DataSet de pesquisa será atualizado para que o registro seja eliminado da tabela de pesquisa lá na tela de cadastro.
Agora, dê um duplo-clique sobre o evento "AfterPost" e implemente da seguinte maneira:

delphi sql datamodule

Este evento será chamado após gravar um novo registro, A operação será persistida na base de dados.
Pra finalizar, precisamo gerar nosso código sequencial. Alguns optam por "Generators", que a maioria dos bancos dispõe. Porém, vamos gerar nosso código sequencial na "unha".
Então, duplo-clique no evento "BeforePost" e implemente da seguinte maneira:

delphi sql datamodule

Este evento será executado antes do registro ser persistido na base de dados, ou seja, o código sequencial será gerado antes do registro ser gravado.
Ufa, chagamos ao final de mais um artigo. Galera, qualquer dúvida, comente, estamos juntos. Um forte abraço e até o próximo artigo.

(Por ClipaTec Informática)

0 comentários:

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!