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

ASP


jocapt

Pergunta

Boa tarde a todos,

Tenho um problema na inserção de dados em BD que não estou a conseguir resolver.

Tenho o seguinte formulário que recebe dois campos

<%@language=Vbscript %>

<!--#include Virtual="/meus_ssi/conecta_clisare007.asp"-->

<head>

<style type="text/css">

.style1

{

width: 100%;

}

</style>

</head>

<%response.Buffer=true%>

<%Sub alerta(mensagem)

'response.write "&lt;script>"

response.write "('"&mensagem&"')"

'response.write "</script>"

End Sub %>

&lt;script language="JavaScript">

function Verificar() {

var tecla = window.event.keyCode;

if (tecla == 13) {

alert("Não é permitido a tecla 'Enter'. Use o botão 'Gravar' para guardar os seus dados");

event.keyCode = 0;

event.returnValue = false;

}

}

</script>

&lt;script language="JavaScript">

function Verificar2() {

var tecla = window.event.keyCode;

if (tecla == 08) {

alert("Não é permitido a tecla BackSpace.");

event.keyCode = 0;

event.returnValue = false;

}

}

</script>

&lt;script>

function enviar(p)

{

var destino;

if (p==2)

destino = "http://clisa-nt/LivroAsp/Gestao_Equipamentos_Insert_tipo_artigo_2.asp";

document.form1.method = "GET";

document.form1.action =destino;

document.form1.submit();

}

function limpar() {

for (var i = 7; i <= 10; i++) {

form1.elements.value = ""

}

form1.elements[7].focus()

}

</script>

<html>

<head>

<title> Gestão de Instalações e Equipamentos</title>

<style type="text/css">

.style1

{

color: #FF0000;

}

.style2

{

width: 20%;

color: #FF0000;

}

.style3

{

width: 23%;

color: #FF0000;

}

.style4

{

height: 18px;

}

</style>

<h1 align="center" class="style1">Teste</h1>

<h2 align="center" class="style1">Teste</h2>

</head>

<body>

<form name=form1 method="GET">

<div align="center"><center><table border="0" cellspacing="0" bgcolor="GrayText" >

<tr>

<td align="center" bgcolor="#0000FF" class="style4"><font

color="#FFFFFF" size="2" face="Tahoma"><strong>Criação de Produtos</strong></font></td>

</tr>

<tr>

<td>

<input type="submit" name="Alterar" value="Gravar " onClick=enviar(2)>

</td>

</tr>

<table border="0" cellspacing="3"

bgcolor="#8000FF" style="height: 74px;">

<tr>

<td class="style2"><font color="#FFFFFF"

size="2" face="Tahoma"><strong>Serviço</strong></font><font

color="#FFFFFF" face="Tahoma">

<input type="text" size="20" name="Servico"

style="width: 420px; margin-left: 25px;"></font>

</td>

</tr>

<tr>

<td class="style2"><font color="#FFFFFF"

size="2" face="Tahoma"><strong>Edificio</strong></font><font

color="#FFFFFF" face="Tahoma">              

<input type="text" size="20" name="Edificio"

style="width: 422px; margin-left: 23px;"></font>

</td>

</tr>

</table>

</table>

</center></div>

</form>

<%

BdProjecto002.Close

set BdProjecto002=nothing

%>

</body>

</html>

O problema é que quando tento gravar usando o código abaixo, ele escreve na BD mas depois tenta escrever novamente.

Como resultado, dá erro porque o campo é primary key.

Parece que estou executando o comnado duas vezes.

Aqui vai o insert.

<%@language=Vbscript %>

<!--#include Virtual="/meus_ssi/conecta_clisare007.asp"-->

<%

dim VServico,VEdificio

dim COMANDO

VServico=request.QueryString("Servico")

VEdificio=request.QueryString("Edificio")

COMANDO="insert into MENUS.DBO.GIE_Artigos_Tipo(Cod_Tipo)values('"& VServico &"', '"& VEdificio &"')"

set RecProjecto002=BdProjecto002.Execute(COMANDO)

'response.Write (Comando)

'response.Write (VId_artigo)

%>

<html>

<body>

<%

BdProjecto002.Close

set BdProjecto002=nothing

%>

<%Response.AddHeader "Refresh","1 ; URL=http://clisa-nt/livroasp/Gestao_equipamentos_tipo_artigo.asp" %>

</body>

</html>

O erro que me dá é:

Microsoft OLE DB Provider for SQL Server error '80040e2f'

Violation of PRIMARY KEY constraint 'PK__GIE_Artigos_Tipo__7EC1CEDB'. Cannot insert duplicate key in object 'DBO.GIE_Artigos_Tipo'.

/LivroAsp/Gestao_Equipamentos_Insert_tipo_artigo_2.asp, line 17

Agradeço a vossa ajuda porque não vejo resolução para o mesmo, obrigado

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
COMANDO="insert into tabela (Cod_Tipo)values('"& VServico &"', '"& VEdificio &"')"
BdProjecto002.Execute(COMANDO)
1 campo para 2 valores não tem como funcionar.
Já alterei mas o problema continua
COMANDO="insert into MENUS.DBO.GIE_Artigos_Tipo(Cod_Tipo,descricao_tipo)values('"& VServico &"', '"& VEdificio &"')"
set RecProjecto002=BdProjecto002.Execute(COMANDO)

Link para o comentário
Compartilhar em outros sites

  • 0

Qual banco de dados você tá usando?

Esse é o nome da sua tabela? ou schema.banco.tabela??? "MENUS.DBO.GIE_Artigos_Tipo"

Tá estranho...

Dê uma response.write nesse comando SQL e veja o que ele está retornando ok

COMANDO="insert into NOME_DA_TABELA (COD_TIPO, DESCRICAO_TIPO) values ('"& VServico &"', '"& VEdificio &"')"

response.write(comando)

response.end()

set RecProjecto002=BdProjecto002.Execute(COMANDO)

Editado por Royweb-DF
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,5k
×
×
  • Criar Novo...