经典ASP数组不返回值,错误500

时间:2011-10-12 09:14:36

标签: asp-classic ado

我正在多次执行相同的代码来生成表格。我的第一个想法是使用数组来做到这一点。

这是我到目前为止所得到的:

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 Fieldname的行。

如果没有数组,它会显示代码的其余部分(我还有1个其他字段被添加)。如果我删除数组并用正常的字符串值填充fieldname(i),它也可以正常工作。

我正在尝试谷歌所说的东西,但在尝试了几件事之后,我仍然跑到墙上。 任何想法可能是什么?

提前致谢,

埃里克

2 个答案:

答案 0 :(得分:0)

首先你应该打开你的iis中的错误显示,或者阅读错误日志中的描述,如果不确定如何,请谷歌。

如果没有错误描述,检查错误是很困难的。

答案 1 :(得分:0)

问题解决了!

将我的头撞在墙上一天后,我发现我愚蠢地在DO WHILE循环中声明了数组。将声明移出它并解决了问题。