jocapt Postado Fevereiro 24, 2011 Denunciar Share Postado Fevereiro 24, 2011 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 "<script>"response.write "('"&mensagem&"')"'response.write "</script>" End Sub %><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><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><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,VEdificiodim 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Fevereiro 24, 2011 Denunciar Share Postado Fevereiro 24, 2011 COMANDO="insert into tabela (Cod_Tipo)values('"& VServico &"', '"& VEdificio &"')" BdProjecto002.Execute(COMANDO)1 campo para 2 valores não tem como funcionar. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jocapt Postado Fevereiro 24, 2011 Autor Denunciar Share Postado Fevereiro 24, 2011 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) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Royweb-DF Postado Fevereiro 25, 2011 Denunciar Share Postado Fevereiro 25, 2011 (editado) 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 okCOMANDO="insert into NOME_DA_TABELA (COD_TIPO, DESCRICAO_TIPO) values ('"& VServico &"', '"& VEdificio &"')"response.write(comando)response.end()set RecProjecto002=BdProjecto002.Execute(COMANDO) Editado Fevereiro 25, 2011 por Royweb-DF Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
jocapt
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 "<script>"
response.write "('"&mensagem&"')"
'response.write "</script>"
End Sub %>
<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>
<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>
<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
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.