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去的。
希望各位高手帮我解答