Function GetUrl(URL As String, Optional ByRef db As DataBlock = Nothing) As DataBlock
On Error GoTo errh
Dim tmpDB As New DataBlock
Dim tb As New TextBlock
Dim tmpS As String, tmpS2 As String
Dim sn As String, sv As String
Dim i As Long
Dim c As String
Dim Line As Long
Inet1.Cancel
Line = 1
If Not db Is Nothing Then
Line = 2
For i = 0 To db.FieldNum - 1
Line = 3
c = c & SafeFilte(db.ReadFieldName(i)) & "=" & SafeFilte(db.ReadFieldValue(i)) & "&"
Line = 4
DoEvents
Line = 5
Next i
End If
'tmps = AppDB.ReadField("SpiderServer")
'i = InStr(1, tmps, ":")
'If i > 0 Then
' Inet1.Host = Left(tmps, i - 1)
' Inet1.Port = Right(tmps, Len(tmps) - i)
'Else
' Inet1.Host = tmps
'End If
Line = 6
tmpS = Inet1.OpenURL("http://" & AppDB.ReadField("SpiderServer") & "/" & URL & "?" & c & "SysUser=" & SafeFilte(AppDB.ReadField("SysUser")) & "&SysPass=" & SafeFilte(AppDB.ReadField("SysPass")))
Line = 7
tmpS2 = tmpS
Line = 8
tb.LoadString tmpS
Line = 9
While Not tb.EOF
Line = 10
tmpS = tb.ReadLine
Line = 11
i = InStr(1, tmpS, "=")
Line = 12
If i > 0 Then
Line = 13
sn = Left(tmpS, i - 1)
Line = 14
sv = Right(tmpS, Len(tmpS) - i)
Line = 15
tmpDB.WriteField sn, sv
Line = 16
End If
Line = 17
'DoEvents
Wend
Line = 18
If tmpDB.FindField("Accept") < 0 Then
Line = 19
WriteErrList "http://" & AppDB.ReadField("SpiderServer") & "/" & URL & "?" & c & "SysUser=" & SafeFilte(AppDB.ReadField("SysUser")) & "&SysPass=" & SafeFilte(AppDB.ReadField("SysPass"))
WriteErrList "Error in communication with SpiderServer '" & AppDB.ReadField("SpiderServer") & "'. Line " & Line & " , Error Description: Filed 'Accept' Not Found." & vbCrLf & " ReplyStr:" & " " & tmpS2
'MsgBox "http://" & AppDB.ReadField("SpiderServer") & "/" & URL & "?" & c & "SysUser=" & SafeFilte(AppDB.ReadField("SysUser")) & "&SysPass=" & SafeFilte(AppDB.ReadField("SysPass"))
Line = 20
Set GetUrl = Nothing
Line = 21
Else
Line = 22
Set GetUrl = tmpDB
Line = 23
End If
Line = 24
Inet1.Cancel
Line = 25
Exit Function
errh:
Set GetUrl = Nothing
'Triger.Enabled = True
WriteErrList "http://" & AppDB.ReadField("SpiderServer") & "/" & URL & "?" & c & "SysUser=" & SafeFilte(AppDB.ReadField("SysUser")) & "&SysPass=" & SafeFilte(AppDB.ReadField("SysPass"))
WriteErrList "Error in communication with SpiderServer '" & AppDB.ReadField("SpiderServer") & "'. Line " & Line & " , Error Description: " & Err.Description & vbCrLf & " ReplyString: " & vbCrLf & " " & tmpS2
End Function这是一个将db(我定义的数据记录类型)传递给http服务端的函数,一般运行正常。
其中writeerrlist是我写的记录错误的函数,这个程序运行一段时间之后 有了错误记录,记录为
2006-9-18 9:54:57 http://spider.hunnu.3322.org/ReadTask.asp?TaskType=listft
p&SysUser=FTPSearch&SysPass=FTPSearch 2006-9-18 9:54:57 Error in communication with SpiderServer 'spider.hunnu.33
22.org'. Line 6 , Error Description:
ReplyString:我觉得很奇怪,为什么没有记录下err.description 如果没有错误 又是怎么跳转到errh去的。
希望各位高手帮我解答
On Error GoTo errh
Dim tmpDB As New DataBlock
Dim tb As New TextBlock
Dim tmpS As String, tmpS2 As String
Dim sn As String, sv As String
Dim i As Long
Dim c As String
Dim Line As Long
Inet1.Cancel
Line = 1
If Not db Is Nothing Then
Line = 2
For i = 0 To db.FieldNum - 1
Line = 3
c = c & SafeFilte(db.ReadFieldName(i)) & "=" & SafeFilte(db.ReadFieldValue(i)) & "&"
Line = 4
DoEvents
Line = 5
Next i
End If
'tmps = AppDB.ReadField("SpiderServer")
'i = InStr(1, tmps, ":")
'If i > 0 Then
' Inet1.Host = Left(tmps, i - 1)
' Inet1.Port = Right(tmps, Len(tmps) - i)
'Else
' Inet1.Host = tmps
'End If
Line = 6
tmpS = Inet1.OpenURL("http://" & AppDB.ReadField("SpiderServer") & "/" & URL & "?" & c & "SysUser=" & SafeFilte(AppDB.ReadField("SysUser")) & "&SysPass=" & SafeFilte(AppDB.ReadField("SysPass")))
Line = 7
tmpS2 = tmpS
Line = 8
tb.LoadString tmpS
Line = 9
While Not tb.EOF
Line = 10
tmpS = tb.ReadLine
Line = 11
i = InStr(1, tmpS, "=")
Line = 12
If i > 0 Then
Line = 13
sn = Left(tmpS, i - 1)
Line = 14
sv = Right(tmpS, Len(tmpS) - i)
Line = 15
tmpDB.WriteField sn, sv
Line = 16
End If
Line = 17
'DoEvents
Wend
Line = 18
If tmpDB.FindField("Accept") < 0 Then
Line = 19
WriteErrList "http://" & AppDB.ReadField("SpiderServer") & "/" & URL & "?" & c & "SysUser=" & SafeFilte(AppDB.ReadField("SysUser")) & "&SysPass=" & SafeFilte(AppDB.ReadField("SysPass"))
WriteErrList "Error in communication with SpiderServer '" & AppDB.ReadField("SpiderServer") & "'. Line " & Line & " , Error Description: Filed 'Accept' Not Found." & vbCrLf & " ReplyStr:" & " " & tmpS2
'MsgBox "http://" & AppDB.ReadField("SpiderServer") & "/" & URL & "?" & c & "SysUser=" & SafeFilte(AppDB.ReadField("SysUser")) & "&SysPass=" & SafeFilte(AppDB.ReadField("SysPass"))
Line = 20
Set GetUrl = Nothing
Line = 21
Else
Line = 22
Set GetUrl = tmpDB
Line = 23
End If
Line = 24
Inet1.Cancel
Line = 25
Exit Function
errh:
Set GetUrl = Nothing
'Triger.Enabled = True
WriteErrList "http://" & AppDB.ReadField("SpiderServer") & "/" & URL & "?" & c & "SysUser=" & SafeFilte(AppDB.ReadField("SysUser")) & "&SysPass=" & SafeFilte(AppDB.ReadField("SysPass"))
WriteErrList "Error in communication with SpiderServer '" & AppDB.ReadField("SpiderServer") & "'. Line " & Line & " , Error Description: " & Err.Description & vbCrLf & " ReplyString: " & vbCrLf & " " & tmpS2
End Function这是一个将db(我定义的数据记录类型)传递给http服务端的函数,一般运行正常。
其中writeerrlist是我写的记录错误的函数,这个程序运行一段时间之后 有了错误记录,记录为
2006-9-18 9:54:57 http://spider.hunnu.3322.org/ReadTask.asp?TaskType=listft
p&SysUser=FTPSearch&SysPass=FTPSearch 2006-9-18 9:54:57 Error in communication with SpiderServer 'spider.hunnu.33
22.org'. Line 6 , Error Description:
ReplyString:我觉得很奇怪,为什么没有记录下err.description 如果没有错误 又是怎么跳转到errh去的。
希望各位高手帮我解答
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货