DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da ClubeDelphi DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Artigo Clube Delphi Edição 31 - Métodos de Validação

Artigo da Revista Clube Delphi Edição 31.

Esse artigo faz parte da revista Clube Delphi edição 31. 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. Os artigos dessa edição estão disponíveis somente através do formato HTML.
 

Métodos de Validação

Técnicas de validação de dados em Delphi

Este artigo apresenta diversas técnicas para validação de dados em aplicações Delphi e analisa as vantagens e desvantagens de cada uma, estimulando a adoção de práticas mais eficientes.

Dados validados, informações úteis

A comprovação da validade dos dados introduzidos em um sistema de informações é um aspecto tão importante de um projeto que muitas vezes pode determinar seu sucesso ou fracasso. Não é raro sistemas serem abandonados pelos usuários por não terem um tratamento mais completo de validação e consistência de dados, sendo posteriormente substituídos por outros mais atentos a esse requerimento.

Acontece que um sistema só pode fornecer informações úteis se for alimentado com dados coerentes e completos. Se você deseja que seu sistema apresente bons resultados, não pode permitir que seja alimentado com lixo: “trash in, trash out” (se entra lixo, sai lixo), diz o ditado.

Validação em um mundo cliente/servidor

Com o surgimento da arquitetura cliente/servidor, especialmente em sistemas multicamadas, surgiram novos questionamentos. Agora não é apenas um único programa atuando sobre os arquivos de dados. São duas, três ou mais camadas funcionais trabalhando em conjunto para rodar uma aplicação, geralmente em máquinas diferentes. Qual dessas camadas deve ser a responsável pela validação dos dados? E se a tarefa for dividida (ou repetida) entre as camadas lógicas, como deve ser essa distribuição?

Considere, por exemplo, uma aplicação web comum que tem como cliente um browser, acessando uma aplicação ASP (Active Server Pages) em um servidor web, que se liga a componentes COM+, contendo regras de negócio, os quais finalmente são conectados a um servidor SQL. Temos aí, realmente, uma aplicação de quatro camadas. E aí? Onde deve ficar a validação de dados? No navegador, em JavaScript? Ou no código VBScript do servidor ASP? Talvez concentrar tudo nas regras de negócio do Servidor de aplicações? Mas e quanto às regras de integridade no servidor de banco de dados?

Certamente não há uma única resposta para todas essas questões. Sobretudo, não podemos esquecer que cada caso é um caso, e que as singularidades de cada sistema devem ser consideradas cuidadosamente. Por isso mesmo, vamos analisar diversas abordagens de validação de dados em Delphi, e seus prós e contras.

Classificação dos Métodos

Podemos classificar as diversas técnicas de validação, primeiramente pela camada lógica da aplicação onde atuam. Assim, temos técnicas que agem diretamente na interface com o usuário (1), outras que são aplicadas nos módulos de dados locais ou remotos (2) e, finalmente, aquelas que são reforçadas pelo sistema de gerenciamento de banco de dados (3).

Existem métodos de validação corretivos e preventivos. Os corretivos são aqueles que exibem uma mensagem de erro para o usuário quando um valor inválido é inserido. Os preventivos têm uma outra abordagem: só permitem que o usuário insira valores válidos em um campo.

Outro critério importante é considerar se a validade dos dados é testada por campo, por registro ou por lote de alterações. A validação por campo ocorre logo no momento em que o usuário muda o valor de um campo. Já a validação de um registro acontece após todos os campos terem sido editados, mas antes do registro ser gravado. As validações por lote de alterações ocorrem somente quando um conjunto de registros inseridos, alterados ou excluídos é enviado para o servidor para ser efetivado.

É preciso notar também que certos métodos dão resposta imediata ao usuário durante a edição dos dados, enquanto outros dependem do processamento de uma transação ou da aplicação de um lote de alterações.

Todas essas características devem ser consideradas na hora de escolher o melhor método de validação para determinada função. Por exemplo, a verificação da duplicidade de um nome de cliente deve ser avisada tão logo o campo seja preenchido. Caso contrário corre-se o risco de desperdiçar o valioso tempo do usuário reescrevendo dados de um cliente que já constava no seu cadastro. Por outro lado, uma aplicação Internet pode permitir que clientes façam pedidos de compra de um produto que está em falta no estoque. O saldo negativo resultante pode gerar um aviso de demora de entrega para o cliente, mas não impede que a compra seja realizada.

Enfim, vamos examinar algumas técnicas de validação de dados.

TWinControl.OnExit

Um método de validação é verificar o valor informado pelo usuário em controles visuais assim que o foco de edição sair do controle. O evento OnExit, herdado da classe TWinControl, ocorre quando o foco de edição muda de um controle para outro.

"

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da ClubeDelphi DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Daniel Maltarollo
O que você achou deste post?

    1 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



João Mota Junior
Artigo muito bom. Realmente trata dos problemas de cada método de validação. Já passei por várias das situações citadas. O artigo me ajudou muito. Valeu!!
[há 8 dias] - Responder

 
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03