现有段程序,需要每3秒从数据库中选取记录,但是由于连接的是远程数据,需要走internet连接,但是网络不稳定,经常在"While Not rs.EOF"报错"对象关闭,不允许操作"。我该如何处理,谢谢!程序如下:
Private Sub Timer1_Timer()
Dim rs As New ADODB.Recordset
Dim autoid, MessageContent As String
Dim tempsql As StringDateSendStr = Format(Now, "yyyy-mm-dd hh:mm:ss")
'On Error GoTo lastcode
If IsLeftPoint Then
Set rs = New ADODB.Recordset
If Wavecom1.SendBufCount > 0 And Wavecom1.SendBufCount <= 10 Then
tempsql = "select top 10 AutoID,isnull(UserNumber,'0') as UserNumber,isnull(MessageContent,'') as MessageContent,isnull(userid,'') as userid from T_Out_Modem "
Set rs = ExecSql(tempsql, CONN2)
While Not rs.EOF
If IsLeftPoint Then
autoid = CStr(rs("autoid"))
UserNumber = rs("UserNumber")
MessageContent = rs("MessageContent")
UserId = rs("userid")
Wavecom1.SendSM UserNumber, MessageContent
Send_T_Revert
CONN2.Execute ("delete T_Out_Modem where autoid='" + autoid + "'")
rs.MoveNext
Else
Exit Sub
End If
' DoEvents
Wend
rs.Close
Set rs = Nothing
End IfEnd If
End Sub
Private Sub Timer1_Timer()
Dim rs As New ADODB.Recordset
Dim autoid, MessageContent As String
Dim tempsql As StringDateSendStr = Format(Now, "yyyy-mm-dd hh:mm:ss")
'On Error GoTo lastcode
If IsLeftPoint Then
Set rs = New ADODB.Recordset
If Wavecom1.SendBufCount > 0 And Wavecom1.SendBufCount <= 10 Then
tempsql = "select top 10 AutoID,isnull(UserNumber,'0') as UserNumber,isnull(MessageContent,'') as MessageContent,isnull(userid,'') as userid from T_Out_Modem "
Set rs = ExecSql(tempsql, CONN2)
While Not rs.EOF
If IsLeftPoint Then
autoid = CStr(rs("autoid"))
UserNumber = rs("UserNumber")
MessageContent = rs("MessageContent")
UserId = rs("userid")
Wavecom1.SendSM UserNumber, MessageContent
Send_T_Revert
CONN2.Execute ("delete T_Out_Modem where autoid='" + autoid + "'")
rs.MoveNext
Else
Exit Sub
End If
' DoEvents
Wend
rs.Close
Set rs = Nothing
End IfEnd If
End Sub
Set rs = ExecSql(tempsql, CONN2)
Set rs.ActiveConnection=Nothing就可以解决你的问题,不是网络不稳定的问题
'这里是连接数据库的代码
endif