Ir para conteúdo

POWERED BY:

Arquivado

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

felipefcruz

Checando o campo cpf

Recommended Posts

vc tem certeza que os critérios satisfazem a SQL ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha cara:

<!-- METADATA

TYPE="typelib"

FILE="C:\Program Files\Common Files\System\ADO\msado20.tlb"

-->

 

 

<%

 

 

sub abreconexao

 

caminho="e:\home\ddirect\dados\BaseDadosMICROCRMDDS.mdb"

 

set cn=server.createobject("adodb.connection")

cn.ConnectionString="provider=microsoft.jet.OLEDB.4.0; Data source="&caminho

cn.open

end sub

 

sub fechaconexao

 

set conexao=nothing

 

end sub

 

%>

 

<% Dim varcpf, conexao, conDBQ, constring, rsselect, SQLselect, rsinsert, SQLinsert

 

‘recupero todos os dados

 

varcpf=trim(request.form(“cpf”))

 

%>

<!–#include file=”conn/cadastro_clientes_fisico.asp”–>

 

 

<%

 

call abreconexao

 

 

 

set rsselect=server.createobject(“ADODB.Recordset”)

 

‘crio o SQLselect

 

SQLselect=”SELECT cpf FROM CLIENTES WHERE cpf=’”&varcpf&”‘”

 

rsselect.open SQLselect,conexao,1,3

 

if not rsselect.eof then

 

response.write(“erro″)

 

set rsselect=nothing

 

 

end if

 

call fechaconexao

 

 

 

 

 

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

...

...

...
SQLselect=”SELECT cpf FROM CLIENTES WHERE cpf=’”&varcpf&”‘”

rsselect.open SQLselect,conexao,1,3

-> olhe aqui

if not rsselect.eof then -> se não for final do arquivo.... isso é pq existe dados, então vc deve exibi-los, mas olha que vc está fazendo...

-> vc coloca para escrever "erro" e fecha o objeto e encerra a conexao

response.write(“erro″)

set rsselect=nothing


end if

Compartilhar este post


Link para o post
Compartilhar em outros sites

pessoal isso é super simples para resolver e vcs estão batendo a cabeça para achar o problema...?

 

1º teste se a conexão com o banco está ok!

2º verifique corretamente o nome da tabela (entidade) e o campo referido se existe.

3º no asp para ver o err.descripton basta colocar o on error resume next e tratar se o objeto no método err.Number = 0 tudo bem senão dá um response.write err.descripton

 

simples...

 

att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá uma analisada no post 23. E lembre-se o On Error Resume Next se for usado de forma errada ele torna-se péssimo. Veja o exemplo abaixo do uso do On Error Resume Next:

 

'<%
'On Error Resume Next


'Call SuaFuncao()
'If Err.Number <> 0 Then
'Call LogarErros()
'End If

'On Error Goto 0

'Sub SuaFuncao()
...
'End Sub

'Sub LogarErro()
'Response.Write "Ocorreu um erro inesperado (" & Err.number & " - " & err.Description & ")"
'Response.End
''SEU CÓDIGO PARA LOGAR EM BANCO DE DADOS, EVENT VIEWER, EMAIL, ETC...
'End Sub
'%>

Eu uso a a sub "OnTransactionAbort". Para esta sub ser chamada, é preciso declarar TRANSACTION="REQUIRED" na primeira linha do código, junto com a sintaxe utilizada.

<%@LANGUAGE="VBSCRIPT" TRANSACTION="REQUIRED"%>

 


 

No exemplo abaixo eu utilizo o método Server.GetLastError para recuperar o último erro ocorrido no site e montar um texto, que logo depois será enviado por email.

 

<%
Sub OnTransactionAbort()

Dim objErr, sBody
Set objErr=Server.GetLastError()

sBody = "<b>ASPCode: </b>" & objErr.ASPCode & "<br />" & _
"<b>ASPDescription: </b>" & objErr.ASPDescription & "<br />" & _
"<b>Category: </b>" & objErr.Category & "<br />" & _
"<b>Column: </b>" & objErr.Column & "<br />" & _
"<b>Description: </b>" & objErr.Description & "<br />" & _
"<b>File: </b>" & objErr.File & "<br />" & _
"<b>Line: </b>" & objErr.Line & "<br />" & _
"<b>Number: </b>" & objErr.Number & "<br />" & _
"<b>Source: </b>" & objErr.Source & "<br />" & _
"<b>SQL: </b>" & sql

Call sendmail("<" & SITE_EMAIL_POSTMASTER & ">", "email@site.com", "Tratamento de erros", sBody, "", "")

End Sub 
%>

 


 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bora lá! Um de cada vez, desculpe pela minha "leiguice"...

 

<%

 

call abreconexao

 

 

 

set rsselect=server.createobject("ADODB.Recordset")

 

‘crio o SQLselect

 

SQLselect=”SELECT cpf FROM CLIENTES WHERE cpf='"&varcpf&"'"

 

rsselect.open SQLselect,conexao,1,3

 

 

response.redirect(“paginaerro.asp″)

 

set rsselect=nothing

 

else

 

‘crio o rsinsert para inseiri os dados no bd

 

set rsinsert=server.createobject("ADODB.Recordset")

 

‘crio o SQLinsert pra incluir no bd

 

SQLinsert="INSERT INTO CLIENTES(cpf) values('"&varcpf&"')"

 

rsinsert.open SQLinsert,conexao,1,3

 

response.redirect(“enviado.htm″)

 

set rsinsert=nothing

 

end if

 

call fechaconexao

 

 

%>

 

Seria isso? Não estou podendo fazer testes agora.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não...

veja que aqui

 

 

SQLselect=”SELECT cpf FROM CLIENTES WHERE cpf='"&varcpf&"'"

rsselect.open SQLselect,conexao,1,3


response.redirect(“paginaerro.asp″)

 

vc simplesmente executa a SQL, nõa exibe nada, não usa nenhum recordset e apenas redireciona para paginaerro.asp

 

e abaixo vc insere no BD (com INSERT) e redireciona para enviado.htm

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi mal por ficar fora tantos dias, num me encontrava bem.

eu consegui de uma forma mais fácil que está funcionando...

 

<%
set db = server.createobject("adodb.connection") 'Banco de Dados
set rs = server.createobject("adodb.recordset") 'Tabela de Registros

caminho="e:\home\ddirect\dados\BaseDados.mdb"
db.ConnectionString="provider=microsoft.jet.OLEDB.4.0; Data source="&caminho
db.open

rs.open "select * from CLIENTES where " & _
"CPF='" & Replace(request.form("cpf"), "'", "''") & "'",db
if not rs.eof then 'Encontrou o cpf

response.redirect("erro.html")
set rs = nothing

else 'cpf não encontrado

SQLinsert="INSERT INTO CLIENTES(CPF) values('"&cpf&"')"
end if

set rs = nothing 'Destruímos o Objeto
rs.close

 

%>

 

Mesmo sem nenhum cpf idêntico no banco, está gerando o erro. A lógica está errada?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele esta redirecionando para response.redirect("erro.html") ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rodou!! O erro foi porquê coloquei a programação no lugar inapropriado.

Obrigado pelos códigos e pela paciência!

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.