Ir para conteúdo

POWERED BY:

Arquivado

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

rluiz1708

[Resolvido] Erro na condição IF

Recommended Posts

Boa tarde pessoal!

 

Estou fazendo uma página para inclusão no banco de dados (SQL) e consegui tranquilo. O problema foi quando eu comecei a colocar as condições pra verificar se todos os campos estavam preenchidos e se já não existia aquele registro antes de cadastrar no banco.

 

O erro que dá é:

Erro de tempo de execução do Microsoft VBScript (0x800A01A8)

Objeto necessário: ''

/pizzariaverdun/admin/verifica_cadastro_endereco.asp, line 42

Se alguém puder me ajudar agradeço.

Segue o código da página:

<% Option Explicit %>
<!-- #include file = "funcoes.asp" -->
<%

dim SQL, rs, conexao, cep, bairro, rua, TempoDeEntrega, MensagemAlerta, Imagem

cep = request.Form("txtcep")
bairro = request.Form("txtbairro")
rua = request.Form("txtrua")
TempoDeEntrega = request.Form("txttempo")



'comando sql que insere os dados do endereço no banco de dados
	SQL= "insert into CEPS_ATENDIDOS(CEP, Bairro, TempoDeEntrega, Rua) values ('"&cep&"', '"&bairro&"', '"&TempoDeEntrega&"', '"&rua&"')"
	
	

'abre a conexão com o banco de dados	
call abre_conexao


	'Verifica se todos os campos foram digitados foram digitados, se não, apresenta mensagem de erro em HTML e redireciona para a página de Sistema
	if cep="" or bairro="" or rua="" or TempoDeEntrega="" then 
	%>
		<html>
		<body>
		<center>
		<br/><br/><br/><br/>
		<img src="images/icone_alerta.png" width="32" height="32" /> <br/><br/>
		<font face="Arial" color="#cf0800" size="2"> <strong> ERRO: Preencha todos os campos. </strong> </font>
		</center>
		</body>
		</html> 
			
		
		<meta http-equiv="refresh" content="3; url=sistema.asp"> 
	<%


	else 'Se os campos não estiverem vazios
		if not rs.eof then 'Caso já exista o registro no banco de dados, informa mensagem de erro %>
		
			<html>
			<body>
			<center>
			<br/><br/><br/><br/>
			<img src="images/icone_alerta.png" width="32" height="32" /> <br/><br/>
			<font face="Arial" color="#cf0800" size="2"> <strong> ERRO: Registro já existe no banco de dados. </strong> </font>
			</center>
			</body>
			</html> 
			
			<meta http-equiv="refresh" content="3; url=sistema.asp">	 
		
	<%
		else 'Caso não exista no banco, 
						  
			Set rs = conexao.Execute(SQL)'Grava no banco de dados e exibe mensagem   %>
		
			<html>
			<body>
			<center>
			<br/><br/><br/><br/>
			<img src="images/icone_ok.png" width="32" height="32" /> <br/><br/>
			<font face="Arial" color="#cf0800" size="2"> <strong> Cadastro realizado com sucesso. </strong> </font>
			</center>
			</body>
			</html>
		
		
			<meta http-equiv="refresh" content="3; url=sistema.asp">
			
		
	<%	end if

	end if

	set rs = nothing 'Destrói o Objeto


%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dentro do ELSE: Set rs = conexao.Execute(SQL)

 

if not rs.eof then 'Caso já exista o registro no banco de dados, informa mensagem de erro %>

 

<html>

<body>

<center>

<br/><br/><br/><br/>

<img src="images/icone_alerta.png" width="32" height="32" /> <br/><br/>

<font face="Arial" color="#cf0800" size="2"> <strong> ERRO: Registro já existe no banco de dados. </strong> </font>

</center>

</body>

</html>

 

<meta http-equiv="refresh" content="3; url=sistema.asp">

 

<%

else 'Caso não exista no banco,

 

Set rs = conexao.Execute(SQL)'Grava no banco de dados e exibe mensagem %>

 

<html>

<body>

<center>

<br/><br/><br/><br/>

<img src="images/icone_ok.png" width="32" height="32" /> <br/><br/>

<font face="Arial" color="#cf0800" size="2"> <strong> Cadastro realizado com sucesso. </strong> </font>

</center>

</body>

</html>

 

 

<meta http-equiv="refresh" content="3; url=sistema.asp">

 

 

<% end if

Mas se eu colocar o objeto rs setado antes, ele vai executar antes de fazer as verificações... não?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Negativo, você tem que colocar antes de fazer a verificação com o if.

 

Na realidade, você primeiro deve verificar se existe o registro com uma consulta select para depois inserir ou não o registro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas se eu colocar a linha Set rs = conexao.Execute(SQL) antes, vai inserir no banco antes mesmo de fazer a verificação se já existe aquele registro no banco...

Não é?

 

Mas já entendi que não tem como ele verificar o objeto rs se eu não atribuí nada a ele antes, já que o asp funciona linha por linha de cima a baixo. Mas tbm ainda não consegui encontrar uma solução pra que ele possa fazer isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem razão. Funcionou!

Muito obrigado.

 

Segue o código funcionando:

 

<% Option Explicit %>
<!-- #include file = "funcoes.asp" -->
<%

dim SQLinsere, SQLverifica, rs, conexao, cep, bairro, rua, TempoDeEntrega

cep = request.Form("txtcep")
bairro = request.Form("txtbairro")
rua = request.Form("txtrua")
TempoDeEntrega = request.Form("txttempo")



'comando sql que insere os dados do endereço no banco de dados
	SQLinsere= "insert into CEPS_ATENDIDOS(CEP, Bairro, TempoDeEntrega, Rua) values ('"&cep&"', '"&bairro&"', '"&TempoDeEntrega&"', '"&rua&"')"
	
	
'comando sql que varre o banco de dados
	SQLverifica = "select * from CEPS_ATENDIDOS"
	

'abre a conexão com o banco de dados	
call abre_conexao

' Varre (com select) o banco de dados
set rs = conexao.Execute(SQLverifica)


	'Verifica se todos os campos foram digitados foram digitados, se não, apresenta mensagem de erro em HTML e redireciona para a página de Sistema
	if cep="" or bairro="" or rua="" or TempoDeEntrega="" then 
	%>
		<html>
		<body>
		<center>
		<br/><br/><br/><br/>
		<img src="images/icone_alerta.png" width="32" height="32" /> <br/><br/>
		<font face="Arial" color="#cf0800" size="2"> <strong> ERRO: Preencha todos os campos. </strong> </font>
		</center>
		</body>
		</html> 
			
		
		<meta http-equiv="refresh" content="3; url=sistema.asp"> 
	<%


	else 'Se os campos não estiverem vazios
		if not rs.eof then 'Caso já exista o registro no banco de dados, informa mensagem de erro %>
		
			<html>
			<body>
			<center>
			<br/><br/><br/><br/>
			<img src="images/icone_alerta.png" width="32" height="32" /> <br/><br/>
			<font face="Arial" color="#cf0800" size="2"> <strong> ERRO: Endereço já cadastrado. </strong> </font>
			</center>
			</body>
			</html> 
			
			<meta http-equiv="refresh" content="3; url=sistema.asp">	 
		
	<%
		else 'Caso não exista no banco 
						  
			Set rs = conexao.Execute(SQLinsere)'Grava no banco de dados e exibe mensagem   %>
		
			<html>
			<body>
			<center>
			<br/><br/><br/><br/>
			<img src="images/icone_ok.png" width="32" height="32" /> <br/><br/>
			<font face="Arial" color="#cf0800" size="2"> <strong> Cadastro realizado com sucesso. </strong> </font>
			</center>
			</body>
			</html>
		
		
			<meta http-equiv="refresh" content="3; url=sistema.asp">
			
		
	<%	end if

	end if

	set rs = nothing 'Destrói o Objeto


%>

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.