Ir para conteúdo

POWERED BY:

Arquivado

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

Fells

[Resolvido] Verificação de dado existente SQL Server / ASP

Recommended Posts

Gente, tenho um formulario (RelMedFormulario.asp) o usuario insere os dados lá tals... que eh gravado no SQL Server.

Tem dois campos (NUMERORM e NUMEROAMOSTRA) que são unicos... ou seja apesar do cara criar esse numero ele tem que criar um numero que não exista ainda.

 

Feito o preenchimento do formulário eu envio os dados preenchidos por parametro para um asp (RelMedInserir.asp).

 

Eu preciso pegar esses dois parametros "unicos" (NUMERORM e NUMEROAMOSTRA) e antes de inserir fazer uma busca na tabela para ver se são unicos mesmo.

Pois atualmente quando o cara digita um dado que ja tem ele da o seguinte erro:

 

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

 

Violation of UNIQUE KEY constraint 'UQ__ContEng_RelMedic__359DCDD0'. Cannot insert duplicate key in object 'ContEng_RelMedicao'.

 

/engenharia/RelMedInserir.asp, line 93

 

Segue o basico do meu asp (RelMedInserir.asp) que recebe os parametros e insere no banco.

***** aqui preciso de algo para fazer a verificação dos dados antes de inserir.

 

[....]
<%
'________________________________________________________________________________________________
	'Instanciamos e abrimos nosso objeto conexão
'________________________________________________________________________________________________

	Set Conn = Server.CreateObject("ADODB.Connection")
	Conn.Open Session("Gestao_conn")

'________________________________________________________________________________________________
	'Recolhemos os valores do formulário
'________________________________________________________________________________________________

NumRM = Request.Form("RequiredNumero RM")
Peca= Request.Form("Peca")
Categoria = Request.Form("Categoria")
Tipo = Request.Form("RequiredTipo")
NumPeca = Request.Form("RequiredNumero Peca")
Qtde = Request.Form("RequiredQtde")
NumAmostra = Request.Form("RequiredNumero Amostra")
Aplicacao = Request.Form("Aplicacao")
Cliente = Request.Form("RequiredCliente")
Inspetor = Request.Form("RequiredInspetor")
Solicitante = Request.Form("RequiredSolicitante")
Data = Request.Form("RequiredData")
ECN = Request.Form("RequiredECN")
StatusDesenho = Request.Form("Status Desenho")
Departamento = Request.Form("RequiredDepartamento")
Observacao = Request.Form("RequiredObservacao")

'________________________________________________________________________________________________
	'Insiro no banco
'________________________________________________________________________________________________


sSQL="Insert Into ContEng_RelMedicao (Codigo, NumRM, Peca, Categoria, Tipo, NumPeca, Qtde, NumAmostra, Aplicacao, Cliente, Inspetor, Solicitante, Data, ECN, StatusDesenho, Departamento, Observacao) values ('" & Varx & "','" & NumRM & "','" & Peca & "','" & Categoria & "', '" & Tipo & "','" & NumPeca & "','" & Qtde & "','" & NumAmostra & "','" & Aplicacao & "','" & Cliente & "','" & Inspetor & "','" & Solicitante & "',convert(smalldatetime,'" & Data & " ',103),'" & ECN & "','" & StatusDesenho & "','" & Departamento & "','" & Observacao & "')"

'________________________________________________________________________________________________
'Executamos a ordem
'________________________________________________________________________________________________

set RS = Conn.Execute(sSQL)
%>

<div align="center"><font size = 2 color = "#666666">ADICIONAR NOVO REGISTRO ?</div><br>
<div align="center"><font size = 2><a href="RelMedFormulario.asp">Sim</a>
<font size = 2><a href="RelMed.asp">Não</a></div>


<%
'END IF

'________________________________________________________________________________________________
'Fechamos o sistema de conexão
'________________________________________________________________________________________________

Conn.Close
%>

 </BODY>
</HTML>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue exemplo de como faço antes de inserir no BD:

 


nome         = Request("nome")	
user_id       = Request("user_id")
senha        = Request("senha")


Set RS_Cad_Usuario = Server.CreateObject("ADODB.Recordset")
RS_Cad_Usuario.CursorLocation = 3
RS_Cad_Usuario.CursorType = 0
RS_Cad_Usuario.LockType = 3

strQ = "SELECT nome, user_id, data_criacao, chave FROM Usuarios Where user_id = '"&user_id&"'"
RS_Cad_Usuario.Open strQ, Conexao, , , &H0001

if RS_Cad_Usuario.eof then
RS_Cad_Usuario.AddNew
RS_Cad_Usuario("nome")	= Trim(nome)
RS_Cad_Usuario("user_id")         = Trim(user_id)	
RS_Cad_Usuario("chave")         = Trim(senha)
RS_Cad_Usuario("data_criacao")  = Date()

RS_Cad_Usuario.Update
msg_cadastro = "Cadastro efetuado!"
else	
msg_cadastro = "E-mail já cadastrado!"
end if
RS_Cad_Usuario.Close
Set RS_Cad_Usuario = Nothing

 

Sacou a ideia?

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá uma olhada neste link

neste link, tem uma opção que antes de inserir , eu verifico se existe algum dado, se tiover você redireciona ou faz a

operação que desejar. dá uma analisada e qualquer coisa posta aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

Xanburzum eu vi esse link, mais ele se refere a uma conexão com Access e no meu caso é com SQL Server.

 

Ainda estou com este problema... tentei algumas coisinhas, mais nem tive tempo de pegar pra fuçar mesmo.

Agora voltei a mexer no código. Mais não acho nada que me ajude a consultar o dado e ver se ele ja existe no banco antes de inseri-lo.

 

Quati... eu não compreendi mtoo o que você fez não cara...

Até pq sou iniciante!! huahauuauha...

Compartilhar este post


Link para o post
Compartilhar em outros sites

só altera a conexao para SQLSERVER

neste sistema eu verifico se ja existe os dados antes de inserir, se caso existe eu redireciono o user para a pagina de cadastro novamente, e nela eu passo uma variavel pela querystring e recupero para ver quais os dados que existe , abro um js com uma mensagem pop-up que se fecha automaticamente, apenas para visualizacao do user....

Compartilhar este post


Link para o post
Compartilhar em outros sites

[RESOLVIDO]

 

Saqueiii... isso mesmo cara!

 

Fiz assim óó:

 

<html>
<body> '..... começo do código

'Abri um objeto de conexão com o Banco.
	Set Conn = Server.CreateObject("ADODB.Connection")
	Conn.Open Session("Gestao_conn")

'ai passei os dados do formulário para este ASP que os insere no Banco
NumRM = Request.Form("RequiredNumero RM")
Peca= Request.Form("Peca")
Categoria = Request.Form("Categoria")
Tipo = Request.Form("RequiredTipo")
NumPeca = Request.Form("RequiredNumero Peca")
Qtde = Request.Form("RequiredQtde")
NumAmostra = Request.Form("RequiredNumero Amostra")
Aplicacao = Request.Form("requiredAplicacao")
Cliente = Request.Form("RequiredCliente")
Inspetor = Request.Form("RequiredInspetor")
Solicitante = Request.Form("RequiredSolicitante")
Data = Request.Form("RequiredData")
ECN = Request.Form("RequiredECN")
StatusDesenho = Request.Form("Status Desenho")
Departamento = Request.Form("RequiredDepartamento")
Observacao = Request.Form("RequiredObservacao")

'Após pegar os dados... pedi para ele fazer um Select no banco puxando o NumeroRM e o NumeroAmostra digitado pelo usuario.
VSQL="SELECT NumRM, NumAmostra FROM ContEng_RelMedicao"
VSQL = VSQL & " WHERE (NumRM = '" & NumRM & "') OR (NumAmostra = '" & NumAmostra & "')"

set rs = Conn.Execute(VSQL)

'Ele faz um if para verificar se há dados iguais ao digitado... se não tiver ele insere no banco.
if rs.Eof and (NumRM = '" & NumRM & "' OR NumAmostra = '" & NumAmostra & "') then
'**** Aqui vem todo meu codigo normal, para inserir no banco... enfim, nada de mais.

'No fim da página coloquei um Else
Else
response.write "JA EXISTE"
end if
 </BODY>
</HTML>

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.