ошибка «нижний предел диапазона» (vbscript при загрузке страницы) - PullRequest
0 голосов
/ 02 декабря 2009

Меня зовут Эдд, и мне нужна ваша помощь. Эта ошибка возникает при загрузке страницы в моем классическом приложении ASP:

Microsoft VBScript runtime error  '800a0009' 
Subscript out of range: 'cont' 
/admin/cadastros_apz_material.asp, line 173 

Связанный код:

do while not rs.eof
  for i = 1 to tpp
     if i = 1 then matriz(cont) = Rs("id_material_apv_produto") else matriz(cont) = matriz(cont) & "_" & rs("id_material_apv_produto")
     rs.movenext: if rs.eof then exit do
   next: cont = cont + 1
loop: set rs = nothing: if cint(pag) = 1 and ubound(matriz) >= 1 then id = matriz(1)

Спасибо.

Ответы [ 2 ]

5 голосов
/ 02 декабря 2009

Прежде всего: оператор : хорош, но вы окончательно перестарались. Я рекомендую очистить ваш код, чтобы сделать его более читабельным. Это также помогает в отладке, поскольку разбивает строку и помогает найти ошибки по строке.

Do While Not rs.EOF
  For i = 1 To tpp
    If i = 1 Then 
      matriz(cont) = rs("id_material_apv_produto") 
    Else 
      matriz(cont) = matriz(cont) & "_" & rs("id_material_apv_produto")
    End If
    rs.MoveNext
    If rs.EOF Then Exit Do
  Next
  cont = cont + 1
Loop
Set rs = Nothing
If CInt(pag) = 1 And UBound(matriz) >= 1 Then 
  id = matriz(1)
End If

Теперь за вашу ошибку. Он жалуется, что в какой-то момент cont относится к позиции за пределами matriz. Ваш массив имеет неправильные размеры, проверьте, как он создается.

3 голосов
/ 02 декабря 2009

Похоже, что matriz () не содержит элемент массива в индексе, значение которого сохраняется в продолжение.

Угадывает:

  • Matriz () основывается на 1 (Вариант Base 1, то есть 1 ... x) и cont = 0
  • Matriz () слишком мала для количества читаемых записей
...