Hola, ░▒▓BlackZeroҖ▓▒░
Los 100 registros los descargo con un Timer
Private Sub Timer1_Timer()
If Winsock1.State = sckConnected Then
Dim ID As Long
ID = FuncionMaximo("Registros", "ID")
ID = ID + 1
Winsock1.SendData "DESGARGAR" & Format(ID, "0000000000")
Timer1.Enabled = False
End If
End Sub
Luego en el Server DataArribal
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Transmicion As String
Dim Mandato As String
Winsock1.GetData Transmicion, vbString
Mandato = Left(Transmicion, 9)
If Mandato = "DESCARGAR" Then
RS.Open "", DBConex, adOpenStatic, adLockReadOnly
If RS.RecordCount > 0 Then
Dim Trasmitir As String
Transmitir = Transmitir & RS(0) & "|"
Transmitir = Transmitir & RS(1) & "|"
Transmitir = Transmitir & RS(2) & "|"
Etc, Etc, Etc
Winsock1.SendData "AGREGARSI" & Transmitir
Else
Winsock1.SendData "AGREGARNO" 'Informamos que no hay el registro solicitado.
End If
Rs.Close
Set Rs = Nothing
End IF
End Sub
Nuevamente en el Cliente:
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Transmicion As String
Dim Mandato As String
Winsock1.GetData Transmicion, vbString
Mandato = Left(Transmicion, 9)
If Mandato = "AGREGARSI" Then
'hago el correspondiente Split. Es decir extraido los campos
'luego los agrego en la base de datos
'como existe más datos en el server. activo el Timer para que saque el
'nuevo máximo valor y lo envié para descargar el siguiente
Timer1.Enabled = True
End If
End Sub
Bueno, eso es el código. Crees que sea por el Do Events. XQ cuanto solicité la descargar de Registros con un FOR en el DataArribal se mesclaban todos los registros; ya que, lo hacía muy rápido. Por eso el Timer solicitará un nuevo registro una vez se se haya agregado el registro descargado, sino se mantendrá Inactivo.
Más claro, lo que no entiendo si el problema es:
1.) ¿Pido muy rápido el registro a descargar?
2.) ¿Problema con el Split, porque no soporta muchos datos. Por lo que me sugieres que use Switch?
Ayuda, porfa...