logoLog da Selva


Mais do que uma trigger

Escrito em Banco de Dados por Rodrigo Fournier em 08 de Outubro de 2008

Voltando a postar, e tentando mais uma vez dar dica pra galera. Esses dias tive que fazer uma tarefa aqui na empresa bem interessante. Precisava acrescentar ao login do sistema que estamos desenvolvendo, uma funcionalidade de bloqueio para quando o usuário errasse a senha 3 vezes. Até ai muito fácil, e não detalharei a maneira como fiz pois existem várias formas, e não é esse o tema que quero tocar nesse post. O fato é que o cliente pediu que se a pessoa errasse 2 vezes a senha e desistisse do acesso, para que as tentativas de acesso fossem novamente zeradas, precisariam passar 10 dias além da última tentativa.

Mais uma vez, isso poderia ser feito de n maneiras, mas falarei a maneira que me foi mais conveniente e que dependeu apenas do banco de dados para ser concretizada.

Aqui na empresa utilizamos oracle, e a ferramenta de acesso aos dados, que EU utilizo para tal, é o TOAD da QUEST SOFTWARE. Para quem não o conhece, posso dizer que é uma ferramenta mais indicada parada DBAs, e que muitos aqui preferem o SQLNavigator produzido pela mesma empresa (acho eu, rsrsrsrs), mas eu me acostumei a mexer no TOAD e adoro trabalhar com ele.

Agora vamos a solução…eu criei uma procedure que pegasse todos os usuários que tivessem 1 ou 2 tentativas de acesso no período maior ou igual a 10 dias e os atualizassem, zerando o número de tentativas e a data da última tentativa. Dai, surgiu a dúvida de como fazer para que essa procedure fosse disparada. Uma trigger, que disparasse ao executar qualquer outra coisa??? Bom talvez fosse uma solução boa, mas eu precisava que isso executasse todos os dias sem precisar meter a mão em nada.

Pesquisando pela web e consultando alguns amigos aqui da empresa, cheguei ao tal JOB. O JOB era exatamente do que eu precisava, um processo que fosse executado o dia que eu mandasse na hora que eu quisesse, e o melhor, o TOAD tem ferramenta visual que cria um JOB sem que você precise meter a mão em código SQL, pois ele já gera todo o código.

Talvez isso já seja velho conhecido de alguns, mas tenho certeza que para alguns, como foi pra mim, isso é algo novo e que possa vir a ajudar em algo.

Deixe uma Resposta