Chaves

my.space.share.community

Duplicação de inserção de dados no page refresh

Uma vez que me voltaram hoje a colocar a mesma questão, "tenho um problema, inserção dupla na bd ao fazer page refresh..." resolvi falar um pouco sobre este assunto.

Isto é um problema que acontece para quem está a programar "tudo à mão" no asp a inserção e remoção de dados através por exemplo de uma grid, assim que há um page refresh o comando é repetido. Ou seja ficamos com dados duplicados, ou registos apagados indevidamente.

A inovação da versão 2.0 (asp) veio facilitar este (entre outros) problema, uma vez que o controlo Grid associasse ao SqlDataSource, e juntamente aos comandos sql que lhe configuramos. Portanto se no nosso sqldatasource, definirmos, comandos de selecção, actualização e remoção de dados, assim que associarmos a Grid ao controlo automaticamente ficamos com os comandos para executar estas tarefas, de uma forma segura e sem problemas de page refresh.

Inclusivé ficam disponíveis para a Grid poder ter esses comandos (Delete, Select, Sort).

Mas para quem necessita de programar estes comandos à mão existem algumas soluções, como:

- Clearing the header

- Detecting Browser’s refresh

- Trapping at database level

Existe um bom artigo que descreve cada uma destas soluções, apresenta alternativas, tempos, comparações e com exemplos completos.

http://aspalliance.com/687

A minha recomendação vai para o SqlException, é das mais rápidas e o controlo está sobre a Base de dados, sendo na minha opinião a mais segura.

Posted: 26-10-2006 2:33 por Chaves | with no comments
Leave a Comment

(requerido) 

(requerido) 

(opcional)

(requerido) 

If you can't read this number refresh your screen
Enter the numbers above: