Ir para conteúdo
Fórum Script Brasil
  • 0

Help! Inserção Em Banco De Dados


xasp

Pergunta

Gostaria de saber como que eu faço (em ASP) para para evitar que uma página seja submetida 2 vezes, pois estou criando duas páginas, uma para input dos dados e outra para gravação dos dados no banco, porém quando submeto os dados digitados para inserção no banco esta segunda página é carregada duas vezes, fazendo o insert do mesmo registro duas vezes no banco. Estou trabalhando com banco de dados SQL.

Link para o comentário
Compartilhar em outros sites

17 respostass a esta questão

Posts Recomendados

  • 0

Ué.

Porque ela é carregada 2 vezes?

O que você pode fazer, é trabalhar com query strings.

Por exemplo, na pagina que tem o formulario, você coloca no ACTION a pagina que faz o insert no banco.

Na pagina que faz o insert, você testa se os campos estao vazios. se tiverem com dados, você insere, caso contrario, não insere.

Mas, porque é carregada 2 vezes?

Link para o comentário
Compartilhar em outros sites

  • 0

Mas porque a página é executada 2 vezes?????

Link para o comentário
Compartilhar em outros sites

  • 0

Bem.. primeiro poste aí a pagina de formulario..

depois a pagina que insere os dados.. (ou pelo menos as partes que interessam neste caso)

Pois, tem codigos com 3000 linhas. mas a maioria não é nada de programação, hehe

t+

Link para o comentário
Compartilhar em outros sites

  • 0

FORM

<form name="padraodecfec_frm" method="post">

<%cboCombo "SELECT * FROM TB_CONJUNTO", Application("ConnectionStringSQL"), "cbo_conjunto", "cod_conjunto", "txt_conjunto", strCodConjunto, ""%> </td>

            <input name="num_ano" tabindex="1" class="campo" maxlength="4" style='width:80px' value="<%=strNum_Ano%>"onKeypress="return checar_digitacao()"></td>

 <input name="vlr_padrao1" tabindex="1" class="campo" maxlength="4" style='width:80px' value="<%=strVlr_Padrao(1)%>" onKeypress="return checar_digitacao()">

 <input name="vlr_padrao2" tabindex="1" class="campo" maxlength="4" style='width:80px' value="<%=strVlr_Padrao(2)%>" onKeypress="return checar_digitacao()">

 <input name="vlr_padrao3" tabindex="1" class="campo" maxlength="4" style='width:80px' value="<%=strVlr_Padrao(3)%>" onKeypress="return checar_digitacao()">

 <input name="vlr_padrao4" tabindex="1" class="campo" maxlength="4" style='width:80px' value="<%=strVlr_Padrao(4)%>" onKeypress="return checar_digitacao()">

<input name="vlr_padrao5" tabindex="1" class="campo" maxlength="4" style='width:80px' value="<%=strVlr_Padrao(5)%>" onKeypress="return checar_digitacao()">

<input name="vlr_padrao6" tabindex="1" class="campo" maxlength="4" style='width:80px' value="<%=strVlr_Padrao(6)%>" onKeypress="return checar_digitacao()">

<input type="image" border="0" src="<%=Application("url_site")%>/images/botao/btInserir.gif" alt="Inserir" style="cursor:hand" id=image1 name=image1 onclick="return fIncluir();">

Editado: Use as Tags CODE e QUOTE para formatar seus Posts!

Editado por dark0
Link para o comentário
Compartilhar em outros sites

  • 0

Página de inserção de dados que é submetida 2 vezes!!!

strAction = request("action")
strPage = request("page")


if strAction = "" then
	'Response.Redirect ("")
	Response.End 
end if

strCodConjunto = request("cbo_conjunto")
strNum_Ano = request("Num_Ano")


select case strAction
	'rotina para inclusao de registro na base
	case "incluir"
  j=0
  for i = 1 to 6
  if  (i = 1) or (i = 2) or (i = 3) then
  	strIndicador = 4
  	
  	j = j + 1
  else
  	if i = 4 then 
    j = 0
  	end if
  	j = j + 1
  	strIndicador = 5
  end if
    
  strVlr_Padrao(i) = request("vlr_padrao" & i)
  'insere vlr no banco
  strSQL = "INSERT INTO TB_PADRAO_DEC_FEC (cod_indicador, cod_conjunto, num_ano, cod_periodo, vlr_padrao)"
  strSQL = strSQL & "VALUES (" & strIndicador & ", '" & strCodConjunto & "'," & strNum_Ano & "," & j & "," & strVlr_Padrao(i) & ")"
  'Response.Write strSQL
  'Response.End 
  conexao rs, strSQL, "add", Application("ConnectionStringSQL")
    
    
  if errnumber <> 0 then
  	if errnumber = -2147217873 then 'erro de primary key
    vErro = "Registro já Existente !"
  	else	'erro não esperado pelo sistema
    vErro = "Erro:" & msgerro & "-" & errnumber
  	end if
  end if
	next

Editado: Use as Tags CODE e QUOTE para formatar seus POSTS!

Editado por dark0
Link para o comentário
Compartilhar em outros sites

  • 0

Bom, vamos por partes então.

No seu FORM, parece que você tem uma imagem, que é o botao INSERIR.

E que esta imagem chama uma função JAVASCRIPT.

Cadê a função javascript?

Deve ser ela quem dá submit no Formulario. (se é que é feito submit).

você não especificou ACTION no formulario. Como seu codigo sabe para onde ele deve ir após o submit?

Tá estranho isto que citei acima. Explique melhor. Pois, somente o formulario, como esta acima, parece não funcionar, pois no codigo mostrado, você não dá submit no form!

Eu nem cheguei a olhar a outra pagina.

Primeiro vamos ver se o formulario está OK, pra depois mergulhar no codigo asp.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

function fIncluir()
{

	if (document.padraodecfec_frm.num_ano.value=='')
	{
  alert("Favor Preencher o campo Ano.");
  document.padraodecfec_frm.num_ano.focus();
  return(false);
	};
	/*
	if (document.padraodecfec_frm.vlr_padrao.value=='')
	{
  alert("entrou")
  alert("Favor Preencher o campo Valor Padrão.");
  document.padraodecfec_frm.vlr_padrao.focus();
  return(false);
	};
	*/


	if (document.padraodecfec_frm.cbo_conjunto.value=='')
	{
  alert("Favor Selecionar o campo Conjunto.");
  document.padraodecfec_frm.cbo_conjunto.focus();
  return(false);
	};


	document.padraodecfec_frm.action = "padraodecfec_cmd.asp?action=incluir"
	document.padraodecfec_frm.submit();
	return(true);
}

Editado: Use as Tags CODE e QUOTE para formatar seus Posts!

Editado por dark0
Link para o comentário
Compartilhar em outros sites

  • 0

Bem, então ..

O que é:

strPage = request("page")

de onde vem este PAGE?

O que ele faz no codigo?

Link para o comentário
Compartilhar em outros sites

  • 0

tenho um Grid que é para paginação e para realização de alguns outros eventos de mouse...esse request é para pegar o número da página que está passando os dados para inserção na banco.....mas não é esse request o meu problema......já testei......aliás, quando faço insert eu não utilizo esse request.

Link para o comentário
Compartilhar em outros sites

  • 0

O problema é elementar, entretanto, não consigo entender como você consegue enviar os dados do form para a página de gravação sem o ACTION>

Exemplo:

<%form method="post" action="pagina_de_gravação.asp"%>

Link para o comentário
Compartilhar em outros sites

  • 0

Brow,

Tenta o seguinte:

No seu form, coloque um campo hidden dizendo sua acao.

<input type="hidden" name="action" value="incluir">
retire do ? pra frente no javascript e no ASP receba assim:
variavel = Request.Form("action")

Ainda para verificar o que pode ocorrer no submit, coloque um alert antes de submeter o formulário e verifique a quantidade de vezes que ele executa!!!!!

Até +

cool.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Olha, eu ainda não entendi porque é executada 2 vezes ...

posta seu codigo aí, deve ter alguma coisa a mais em alguma parte do codigo..

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...