Классический массив ASP не возвращает значения, ошибка 500 - PullRequest
0 голосов
/ 12 октября 2011

Я работаю над выполнением одного и того же кода несколько раз для создания таблицы.Мои первые мысли были направлены на использование массива для этого.

Вот что я получил до сих пор:

Dim iRow
iRow = 0 

'alternate color for rows   
Do While Not rsGlobalWeb.EOF 
If iRow Mod 2 = 0 Then 
    response.write "<tr bgcolor=""#FFFFFF"">"
Else 
    response.write "<tr bgcolor=""#EEEEEE"">"
End If 

'some other code
SqlBackup = "SELECT * FROM CMDBbackup WHERE Naam_Cattools = '" & rsGlobalWeb("Device_name") & "'" 
Set rsBackup = Server.CreateObject("ADODB.Recordset")
rsBackup.Open SqlBackup, dbGlobalWeb, 3     

'declaration of array
Dim fieldname(5),i
fieldname(0) = "Device_name"
fieldname(1) = "Image"
fieldname(2) = "Backup"
fieldname(3) = "Uptime"
fieldname(4) = "Processor"
fieldname(5) = "Nvram"

For i = 0 to 5
    If rsGlobalWeb(fieldname(i)) <> "" Then
        response.write("<td>" & rsGlobalWeb(fieldname(i)) & "</td>")
    Else
        If Not rsBackup.EOF Then
            If Not IsNull(rsBackup(fieldname(i))) And (rsBackup(fieldname(i)) <> "") Then
                response.write("<td>" & rsBackup(fieldname(i)) & " (backup)</td>")
            End if
        Else
            response.write("<td>No data found</td>")
        End if
    End if  
Next

response.write("</tr>")

iRow = iRow + 1
rsGlobalWeb.MoveNext 
Loop

Проблема, с которой я столкнулся сейчас, заключается в том, что следующая ошибка возникает даже тогда, когдау меня отключены дружественные сообщения:

"500 - Внутренняя ошибка сервера. Возникла проблема с ресурсом, который вы ищете, и он не может быть отображен."

Файл журнала показывает следующее: "DaEngineSDB.asp | 58 | 800a000d | Type_mismatch 80 -" Где 58 - строка с именем поля Dim.

Без массива он показывает остаток кода (у меня есть 1 другое поле, которое получаетдобавлено).Если я удаляю массив и заполняю имя поля (i) обычным строковым значением, оно также работает нормально.

Я пробовал вещи, которые говорит Google, но после попытки нескольких вещей я все еще бегу к стене.Есть идеи, что бы это могло быть?

Заранее спасибо,

Эрик

Ответы [ 2 ]

0 голосов
/ 14 октября 2011

Проблема решена!

После того, как в течение дня я ударился головой о стену, я обнаружил, что тупо объявил массив внутри цикла DO WHILE.Декларация удалена, и проблема решена.

0 голосов
/ 12 октября 2011

Сначала вы должны включить отображение ошибок в своем iis или прочитать журнал ошибок для его описания, Google, если не знаете, как.

Без описания ошибок слишком сложно проверить, что не так.

...