Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcelo Vieira

duplicação de registro

Recommended Posts

Ola, pessoal.Estou com um problema que já não tenho mais o que fazer, tenho aplicação rodando em uma maquina usando Windows98 + SQL 7.0 + PWS a nível de testes do desenvolvimento, não sei por qual razão que em varias tabelas do banco de dados esta ocorrendo duplicação de registros.Meu conceito de inserção de dados e a seguinte :1 - O usuário preenche todo o formulário, faço minhas criticas antes de enviar para o banco.2 - Se tudo estiver de acordo, beleza envio o formulário para banco.3 – O mesmo arquivo (.asp) que gera a pagina com o formulário recebe os dados vindo do formulário o sript asp associa as variáveis os campos preenchidos pelo usuário e faço a gravação de dados.Isto para mim deixa as coisas mais transparente, pois tenho este conceito de estrutura de programação.Este problema pode estar associado a performance da maquina, tempo de resposta do sql ou do pws ?Segue abaixo os trechos principais de arquivo *.ASP<% @LANGUAGE = VBScript %><% Option Explicit Response.Expires = 0%><!--#include file="../include/adovbs.inc"--><!--#include file="../include/rotinas.asp"--><html><head><!-- Folha de estilo das tabelas --><LINK href="../StyleSheet/StyleSheet.css" rel=STYLESHEET type=text/css> <script language="JavaScript"> ... Aqui meus SCRITS ( JavaScript )... </script> </head><body><%If Request.ServerVariables("CONTENT_LENGTH") <> 0 Then Dim ( crio as variaveis ) fasso a captura dos dados Varivel_01 = Trim( Request.Form("CAMPO X DO FORMULARIO") ) Varivel_02 = Trim( Request.Form("CAMPO Y DO FORMULARIO") ) ...ASSIM POR DIANTE...' -------------------------------------------------------------------------------------------- ' CRIA VARIAVEIS PARA CONEXAO COM BANCO DE DADOS - SQL-Server ' -------------------------------------------------------------------------------------------- Dim Obj_Conexao, Obj_RecordSet Dim Str_Conexao, Str_SQL ' -------------------------------------------------------------------------------------------- ' CRIA OBJETO DE CONEXAO ' -------------------------------------------------------------------------------------------- Set Obj_Conexao = Server.CreateObject("ADODB.Connection") ' -------------------------------------------------------------------------------------------- ' [ EFETUA/ABRE ] CONEXAO COM BANCO DE [ DataBase ] ' -------------------------------------------------------------------------------------------- Str_Conexao = "Data Source=DSN-Nome do Banco; User ID=Sa; PassWord=;" Obj_Conexao.Open Str_Conexao ' -------------------------------------------------------------------------------------------- ' CRIA OBJETO DE CONEXAO COM A [ C A D A S T R O D E C L I E N T E S ] ' -------------------------------------------------------------------------------------------- Set Obj_RecordSet = Server.CreateObject("ADODB.RecordSet") ' -------------------------------------------------------------------------------------------- ' EFETUA BLOQUEIO DA TABELA PARA INCLUSAO DE DADOS ' -------------------------------------------------------------------------------------------- Obj_RecordSet.LockType = adLockOptimistic ' -------------------------------------------------------------------------------------------- ' [ EFETUA/ABRE ] CONEXAO COM A TABELA [ CADASTRO DE CLIENTES ] ' -------------------------------------------------------------------------------------------- Obj_RecordSet.Open "NOME DA TABELA", Obj_Conexao, , ,AdCmdTable ' * * - Adicona Novo Registro a Tabela -------------------- Obj_RecordSet.AddNew ' * * - Grava Campos do Formulario na Tabela ---------- Obj_RecordSet("CAMPO_01") = Variavel_01 Obj_RecordSet("CAMPO_02") = Variavel_02 Obj_RecordSet("CAMPO_03") = Variavel_03 ... assim por diante... ' * * - Atualiza Tabela ----------------------------------- Obj_RecordSet.UpDate ' -------------------------------------------------------------------------------------------- ' F E C H A - BANCO DE DADOS / TABELA ' -------------------------------------------------------------------------------------------- ' * * - Fecha Tabela ----------------------------------- Obj_RecordSet.Close ' * * - Fecha Conexão com DB --------------------------- Obj_Conexao.Close Set Obj_RecordSet = NotHing Set Obj_Conexao = NotHing %> <script language="JavaScript"> window.alert('DADOS GRAVADOS COM SUCESSO \n'); window.history.go(-2); </script><% Else <form name="From_Dados" method="POST" action="<%= Request.ServerVariables("SCRIPT_NAME")%>" ... aquia fica o formulário ... </form> </body></html><% End IF %>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posso não ter percebido, mas você antes de inserir você faz verificação da existência ou não do registro?Quando você criar o campo autonumérico, ele tem uma propriedade de "não-duplicar" o campo.Pode ser isso...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, ainda não sei programação (ainda estou na aula de asp) mas acho que posso tentar com o Banco de Dados.Seguinte, se você. quer uma campo que contenha registro únicos, basta escrever a restrição UNIQUE na hora de definir o campo. Com isso, o banco não aceiará registros duplicados. Aí, eu acho, que sua aplicação em asp poderá interpretar o "erro" e dar uma mensagem para o usuário.ex: CodFuncionario SMALLINT NOT NULL UNIQUEespero que seja isso, só posso te ajudar com banco de dados...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.