2011-10-12 4 views
0

동일한 코드를 여러 번 실행하여 테이블을 생성하려고합니다. 내 첫 번째 생각은 배열을 사용하여이 작업을 수행했습니다. 여기 기존 ASP 배열이 값을 반환하지 않음, 오류 500

내가 지금까지 가지고 무엇을 :

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 

내가 가지고있는 문제를 이제 다음과 같은 오류가 난 친화적 인 메시지가 꺼져 심지어 tho가 발생한다는 것입니다 :

"500 - 내부 서버 오류 찾고있는 리소스에 문제가있어서 표시 할 수 없습니다. "

로그 파일은 다음을 표시합니다. "DaEngineSDB.asp | 58 | 800a000d | Type_mismatch 80 -"여기서 58은 Dim Fieldname이있는 행입니다.

배열이 없으면 나머지 코드가 표시됩니다 (추가되는 다른 1 개의 필드가 있음). 배열을 제거하고 fieldname (i)를 일반 문자열 값으로 채우면 정상적으로 작동합니다.

나는 구글이 말한 것들을 시도했지만 몇 가지 시도를 한 후에도 여전히 벽까지 달려있다. 아이디어가 무엇이겠습니까? 사전에

감사합니다,

에릭

답변

0

문제가 해결되었습니다.

하루 동안 벽에 머리를 두드린 후 DO WHILE 루프 안의 어리석게도 배열을 선언했다는 것을 알았습니다. 선언을 밖으로 옮기고 문제를 해결했습니다.

0

먼저 당신은 당신의 IIS에서 표시하는 오류를 켜, 또는 그 설명에 대한 오류 로그를 읽어, 방법을 잘 모르는 경우 구글해야한다.

오류 설명이 없으면 잘못된 것을 확인하기가 너무 어렵습니다.

+0

응답 해 주셔서 감사합니다. 로그 파일을 확인한 결과 DaEngineSDB.asp | 58 | 800a000d | Type_mismatch가 표시됩니다. 58 행의 전체 코드에는 Dim fieldname이있는 행이 있습니다. – Meridius

관련 문제