Ir para conteúdo

POWERED BY:

Arquivado

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

duducestari

Problema com ASP

Recommended Posts

Ola pessoal,

 

alguém poderia me ajudar, estou fazendo um script para pega o ESTADO do CEP mas está dando erro:

 

http://www.mrdesigner.net/loja3/loja3/identificacao_cep.asp

 

Microsoft VBScript runtime error '800a000d'

 

Type mismatch: 'cep'

 

/loja3/loja3/captura_cep.asp, line 5

 

Script captura_cep.asp abaixo para analise se alguem poder me ajudar agradeço.

ASP
<%

Function sa_captura_cep(cep, arquivo_destino, target)

  cep = cep

  estado = ""

  If cep >= 69900000 And cep <= 69999999 Then

    estado = "AC"

  ElseIf cep >= 57000000 And cep <= 57999999 Then

    estado = "AL"

  ElseIf (cep >= 69000000 And cep <= 69299000) OR (cep >= 69400000 And cep <= 69899999) Then

    estado = "AM"

  ElseIf cep >= 68900000 And cep <= 68999999 Then

    estado = "AP"

  ElseIf cep >= 40000000 And cep <= 48999999 Then

    estado = "BA"

  ElseIf cep >= 60000000 And cep <= 63999999 Then

    estado = "CE"

  ElseIf (cep >= 70000000 And cep <= 72799999) OR (cep >= 73000000 And cep <= 73699999) Then

    estado = "DF"

  ElseIf cep >= 29000000 And cep <= 29999999 Then

    estado = "ES"

  ElseIf (cep >= 72800000 And cep <= 72999999) OR (cep >= 73700000 And cep <= 76799999) Then

    estado = "GO"

  ElseIf cep >= 65000000 And cep <= 65999999 Then

    estado = "MA"

  ElseIf cep >= 30000000 And cep <= 39999999 Then

    estado = "MG"

  ElseIf cep >= 79000000 And cep <= 79999999 Then

    estado = "MS"

  ElseIf cep >= 78000000 And cep <= 78899999 Then

    estado = "MT"

  ElseIf cep >= 66000000 And cep <= 68899999 Then

    estado = "PA"

  ElseIf cep >= 58000000 And cep <= 58999999 Then

    estado = "PB"

  ElseIf cep >= 50000000 And cep <= 56999999 Then

    estado = "PE"

  ElseIf cep >= 64000000 And cep <= 64999999 Then

    estado = "PI"

  ElseIf cep >= 80000000 And cep <= 87999999 Then

    estado = "PR"

  ElseIf cep >= 20000000 And cep <= 28999999 Then

    estado = "RJ"

  ElseIf cep >= 59000000 And cep <= 59999999 Then

    estado = "RN"

  ElseIf cep >= 78900000 And cep <= 78999999 Then

    estado = "RO"

  ElseIf cep >= 69300000 And cep <= 69399999 Then

    estado = "RR"

  ElseIf cep >= 90000000 And cep <= 99999999 Then

    estado = "RS"

  ElseIf cep >= 88000000 And cep <= 89999999 Then

    estado = "SC"

  ElseIf cep >= 49000000 And cep <= 49999999 Then

    estado = "SE"

  ElseIf cep >= 01000000 And cep <= 19999999 Then

    estado = "SP"

  ElseIf cep >= 77000000 And cep <= 77999999 Then

    estado = "TO"

  End If  

  If estado <> "" Then

    Set objCon = Server.CreateObject("ADODB.Connection")

    objCon.Open Application("te_conexao_cep")

    ComandoSQL = "SELECT * FROM " & estado & " WHERE cep = '" & Left(cep,5) & "-" & Right(cep,3) & "'"

    Set objRS_log = Server.CreateObject("ADODB.Recordset")

    objRS_log.CursorLocation = 2

    objRS_log.CursorType = 1

    objRS_log.LockType = 1

    objRS_log.Open ComandoSQL, objCon,,, &H0001

    id_log = ""

    If Not objRS_log.EOF Then

      nome_localidade = objRS_log("localidade")

      nome_bairro = objRS_log("bai_ini")

      nome_log = objRS_log("logradouro") & " " & objRS_log("nome")

        Else

      ComandoSQL = "SELECT * FROM Cidade WHERE cep = '" & Left(cep,5) & "-" & Right(cep,3) & "'"

      Set objRS_bairro = Server.CreateObject("ADODB.Recordset")

      objRS_bairro.CursorLocation = 2

      objRS_bairro.CursorType = 1

      objRS_bairro.LockType = 1

      objRS_bairro.Open ComandoSQL, objCon,,, &H0001

      If Not objRS_bairro.EOF Then

        nome_localidade = objRS_bairro("nome")

        nome_bairro = ""

      End If

      objRS_bairro.Close

    End If

    objRS_log.Close

    objCon.Close

    Response.Write "<form name='sa_captura_cep' method='post' target='" & target & "'>"

    Response.Write "<input name='endereco' type='hidden' value='" & nome_log & "'>"

    Response.Write "<input name='bairro' type='hidden' value='" & nome_bairro & "'>"

    Response.Write "<input name='cidade' type='hidden' value='" & nome_localidade & "'>"

    Response.Write "<input name='estado' type='hidden' value='" & estado & "'>"

    Response.Write "<input name='cep' type='hidden' value='" & cep & "'>"

    Response.Write "</form>"

    Response.Write "<script language='javascript'>"

    Response.Write "document.sa_captura_cep.action='" & arquivo_destino & "';"

    Response.Write "document.sa_captura_cep.submit();"

    Response.Write "</script>"

    Set objCon = Nothing

    Set ComandoSQL = Nothing

    Set objRS_log = Nothing

    Set objRS_bairro = Nothing

    Set objRS_localidade = Nothing

    Set id_log = Nothing

    Set nome_log = Nothing

    Set id_bairro = Nothing

    Set nome_bairro = Nothing

    Set nome_localidade = Nothing

  Else

    Response.Write "<script language='javascript'>alert('Número de CEP inválido')</script>"

  End If

  Set cep = Nothing

  Set estado = Nothing

End Function

%><%

Function sa_captura_cep(cep, arquivo_destino, target)

  cep = cep

  estado = ""

  If cep >= 69900000 And cep <= 69999999 Then

    estado = "AC"

  ElseIf cep >= 57000000 And cep <= 57999999 Then

    estado = "AL"

  ElseIf (cep >= 69000000 And cep <= 69299000) OR (cep >= 69400000 And cep <= 69899999) Then

    estado = "AM"

  ElseIf cep >= 68900000 And cep <= 68999999 Then

    estado = "AP"

  ElseIf cep >= 40000000 And cep <= 48999999 Then

    estado = "BA"

  ElseIf cep >= 60000000 And cep <= 63999999 Then

    estado = "CE"

  ElseIf (cep >= 70000000 And cep <= 72799999) OR (cep >= 73000000 And cep <= 73699999) Then

    estado = "DF"

  ElseIf cep >= 29000000 And cep <= 29999999 Then

    estado = "ES"

  ElseIf (cep >= 72800000 And cep <= 72999999) OR (cep >= 73700000 And cep <= 76799999) Then

    estado = "GO"

  ElseIf cep >= 65000000 And cep <= 65999999 Then

    estado = "MA"

  ElseIf cep >= 30000000 And cep <= 39999999 Then

    estado = "MG"

  ElseIf cep >= 79000000 And cep <= 79999999 Then

    estado = "MS"

  ElseIf cep >= 78000000 And cep <= 78899999 Then

    estado = "MT"

  ElseIf cep >= 66000000 And cep <= 68899999 Then

    estado = "PA"

  ElseIf cep >= 58000000 And cep <= 58999999 Then

    estado = "PB"

  ElseIf cep >= 50000000 And cep <= 56999999 Then

    estado = "PE"

  ElseIf cep >= 64000000 And cep <= 64999999 Then

    estado = "PI"

  ElseIf cep >= 80000000 And cep <= 87999999 Then

    estado = "PR"

  ElseIf cep >= 20000000 And cep <= 28999999 Then

    estado = "RJ"

  ElseIf cep >= 59000000 And cep <= 59999999 Then

    estado = "RN"

  ElseIf cep >= 78900000 And cep <= 78999999 Then

    estado = "RO"

  ElseIf cep >= 69300000 And cep <= 69399999 Then

    estado = "RR"

  ElseIf cep >= 90000000 And cep <= 99999999 Then

    estado = "RS"

  ElseIf cep >= 88000000 And cep <= 89999999 Then

    estado = "SC"

  ElseIf cep >= 49000000 And cep <= 49999999 Then

    estado = "SE"

  ElseIf cep >= 01000000 And cep <= 19999999 Then

    estado = "SP"

  ElseIf cep >= 77000000 And cep <= 77999999 Then

    estado = "TO"

  End If  

  If estado <> "" Then

    Set objCon = Server.CreateObject("ADODB.Connection")

    objCon.Open Application("te_conexao_cep")

    ComandoSQL = "SELECT * FROM " & estado & " WHERE cep = '" & Left(cep,5) & "-" & Right(cep,3) & "'"

    Set objRS_log = Server.CreateObject("ADODB.Recordset")

    objRS_log.CursorLocation = 2

    objRS_log.CursorType = 1

    objRS_log.LockType = 1

    objRS_log.Open ComandoSQL, objCon,,, &H0001

    id_log = ""

    If Not objRS_log.EOF Then

      nome_localidade = objRS_log("localidade")

      nome_bairro = objRS_log("bai_ini")

      nome_log = objRS_log("logradouro") & " " & objRS_log("nome")

        Else

      ComandoSQL = "SELECT * FROM Cidade WHERE cep = '" & Left(cep,5) & "-" & Right(cep,3) & "'"

      Set objRS_bairro = Server.CreateObject("ADODB.Recordset")

      objRS_bairro.CursorLocation = 2

      objRS_bairro.CursorType = 1

      objRS_bairro.LockType = 1

      objRS_bairro.Open ComandoSQL, objCon,,, &H0001

      If Not objRS_bairro.EOF Then

        nome_localidade = objRS_bairro("nome")

        nome_bairro = ""

      End If

      objRS_bairro.Close

    End If

    objRS_log.Close

    objCon.Close

    Response.Write "<form name='sa_captura_cep' method='post' target='" & target & "'>"

    Response.Write "<input name='endereco' type='hidden' value='" & nome_log & "'>"

    Response.Write "<input name='bairro' type='hidden' value='" & nome_bairro & "'>"

    Response.Write "<input name='cidade' type='hidden' value='" & nome_localidade & "'>"

    Response.Write "<input name='estado' type='hidden' value='" & estado & "'>"

    Response.Write "<input name='cep' type='hidden' value='" & cep & "'>"

    Response.Write "</form>"

    Response.Write "<script language='javascript'>"

    Response.Write "document.sa_captura_cep.action='" & arquivo_destino & "';"

    Response.Write "document.sa_captura_cep.submit();"

    Response.Write "</script>"

    Set objCon = Nothing

    Set ComandoSQL = Nothing

    Set objRS_log = Nothing

    Set objRS_bairro = Nothing

    Set objRS_localidade = Nothing

    Set id_log = Nothing

    Set nome_log = Nothing

    Set id_bairro = Nothing

    Set nome_bairro = Nothing

    Set nome_localidade = Nothing

  Else

    Response.Write "<script language='javascript'>alert('Número de CEP inválido')</script>"

  End If

  Set cep = Nothing

  Set estado = Nothing

End Function

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta alterar para:

 

ASP
<%

Function sa_captura_cep(cep2, arquivo_destino, target)

  cep = CInt(cep2)

 

Ou então só tira essa linha:

ASP
cep = cep

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda não está 100% mas o erro sumio, provalmente agora devo está com erro em alguma variavel, não está aceitando nenhum cep.

 

Eu deixei

ASP
Function sa_captura_cep(cep, arquivo_destino, target)

  cep = CInt(cep2)

 

Se eu deixa assim

ASP
<%

Function sa_captura_cep(cep2, arquivo_destino, target)

  cep = CInt(cep2)

 

da erro no Cint.

 

 

Microsoft VBScript runtime error '800a000d'

 

Type mismatch: 'Cint'

 

/loja3/loja3/captura_cep.asp, line 5

 

Vou vericar o codigo.

Obrigado joacatito

Compartilhar este post


Link para o post
Compartilhar em outros sites

você não entendeu a lógica da coisa.

 

ASP
Function sa_captura_cep(cep, arquivo_destino, target)

 

Nesse caso, cep é a variável q você está recebendo. Se você não alterá-la para cep2, realmente não tem sentido utilizar cep2 em outro local.

 

Qual erro no CInt está dando? Talvez o problema seja na chamada da função. você pode estar passando algum valor vazio para o cep, por isso o erro.

 

Faça assim:

 

ASP
Function sa_captura_cep(cep, arquivo_destino, target)

Response.Write("CEP:" & cep & "<br />" & arquivo_destino & "<br />" & target)

Response.End()

Poste aqui o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok deixei o codigo assim

ASP
<%

Function sa_captura_cep(cep, arquivo_destino, target)

Response.Write("CEP:" & cep & "<br />" & arquivo_destino & "<br />" & target)

Response.End()

    cep = CInt(cep)

    estado = ""

  If cep >= 69900000 And cep <= 69999999 Then

    estado = "AC"

  ElseIf cep >= 57000000 And cep <= 57999999 Then

[url="http://www.mrdesigner.net/loja3/loja3/index.asp?secao=3"]http://www.mrdesigner.net/loja3/loja3/index.asp?secao=3[/url] - Compra - Fechar Pedido -  Ainda não sou cliente - Digite o CEP

 

Resultado

http://www.mrdesigner.net/loja3/loja3/identificacao_cep.asp

 

CEP:89025130

cadastro_incluir.asp

_top

Compartilhar este post


Link para o post
Compartilhar em outros sites

você só chama a função "sa_captura_cep" quando vai fechar o pedido e o cliente obrigatoriamente digitou um cep?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim ele é obrigado a digitar um CEP-----------------------------------------------------------------------------------Post Mesclado-----------------------------------------------------------------------------------Olá joacatitoObrigado pela ajudar vou verificar aqui se consigo resolver.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ao invés de deixar:

ASP
cep = CInt(cep2)

Deixa:

ASP
cep = CLng(cep2)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Flw. Desculpa pela falta de atenção. O nº do cep completo é muito grande pra ser convertido para inteiro ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá novamente

 

sabe me dizer onde está o erro

Variavel estado está recebendo o valor.

ASP
If estado <> "" Then

    Set objCon = Server.CreateObject("ADODB.Connection")

    objCon.Open Application("te_conexao_cep")

 

 

Microsoft JET Database Engine error '80004005'

 

Not a valid file name.

 

/loja3/loja3/captura_cep.asp, line 65

 

Obrigado.

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.