Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Problema com Array - ASP


digomiranda

Pergunta

Boa tarde, não sou especialista em ASP, mas estou tentando dar manutenção em um sistema e estou tomando um erro aqui e não estou identificando o problema, com a declaração do array

Microsoft VBScript runtime error '800a000d'

Type mismatch

/infratec/monitoring_sx/SX_Captura_Detalhe_OK.asp, line 63

A linha 63 do meu código, é a declaração do array

+60 <%for i=1 to 2%>

+61 <%

+62 Dim porta1(99999)

+63 Dim porta2(99999)

+64 sql= "select nu_prt from SX.sx_porta"

+65 sql= sql & " where st_prt not like 'connected%' and st_prt not like 'STOPPED%'"

+66 sql= sql & " and Id_maq=" & i

+67 sql= sql & " and nu_prt<>8673 and nu_prt<>8703 and nu_prt<>8710"

+68 sql= sql & " order by nu_prt"

+69

+70 set DadosP1=SwitchOrbS1.Execute(SQL)

+71 do while not DadosP1.eof

+72 sql= "select SW_IndSmbl from sw_paramRede where sw_valor=" & DadosP1("nu_prt")

+73

+74 set DadosDescP1=intranet.Execute(SQL)

+75 If not DadosDescP1.eof then

+76 If i=1 then

+77 porta1(DadosDescP1("SW_IndSmbl"))="sim"

+78 else

+79 porta2(DadosDescP1("SW_IndSmbl"))="sim"

+80 end if

+81 end if

+82 DadosP1.movenext

+83 loop

+84

+85 sql= "select nu_prt from SX.sx_porta"

+86 sql= sql & " where (Id_maq=1 or Id_maq=2)"

+87 sql= sql & " and (nu_prt=8673 or nu_prt=8703 or nu_prt=8710 )"

+88 sql= sql & " order by nu_prt"

+89 set DadosP2=SwitchOrbS1.Execute(SQL)

+90

+91 do while not DadosP2.eof

+92 sql= "select SW_IndSmbl from sw_paramRede where sw_valor=" & DadosP2("nu_prt")

+93 set DadosDescP2=intranet.Execute(SQL)

+94 If not DadosDescP2.eof then

+95 If i=1 then

+96 porta1(DadosDescP2("SW_IndSmbl"))="sim"

+97 else

+98 porta2(DadosDescP2("SW_IndSmbl"))="sim"

+99 end if

+100 end if

+101 DadosP2.movenext

+102 loop

+103 %>

Alguém pode me ajudar?

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Então... a coisa tá meio poluída ali... mas pelo que vi a linha 63 é essa: Dim porta2(99999)...

Uma coisa que percebi, que penso estar errado, é o fato de que está declarando as variáveis dentro de um loop, ou seja, você tá declarando mais de uma vez a mesma variável...

Para corrigir isso, bastaria tirar as declarações de dentro do loop, assim:

<%
Dim porta1(99999), porta2(99999)

for i=1 to 2
'e segue o baile...
%>

Só que assim, o que tá confuso é que essa mensagem "Type Mismatch" normalmente ocorre com outros tipos de erro e não propriamente esse das declarações de variável... todo caso vale a pena a alteração acima e mais um teste (já que as mensagens de erro do asp nem sempre são precisas), depois poste aqui o código com esta alteração, nova mensagem de erro (se houver) e etc...

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, era isso mesmo!

Muito obrigado!

Eu tinha percebido que após alterar a quantidade no Array, ele dava Stack Overflow...

Nem tinha me atentado a isso, que seria estouro do Array

Alterei de:

+60 <%for i=1 to 2%>

+61 <%

+62 Dim porta1(99999)

+63 Dim porta2(99999)

Para:

+60 <%

+61 Dim porta1(99999)

+62 Dim porta2(99999)

+63 for i=1 to 2

Funcionou perfeitamente!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...