Programación General > Visual Basic 6.0 e inferiores

 Base De Datos Remota Con Winsock

(1/1)

martin campos quintero:
Hola amigos, tengo un pequeño problemota.

Les cuento.

Hice un programa de administración de laboratorios del centro de cómputo de mi escuela.

El cual está compuesto por:

- Servidor: Registra automáticamente todos los accesos a cada computadora.
- Cliente para administrador: Manda órdenes al servidor de que apague, desbloquee/bloquee, mande mensajes a todas las pcs por laboratorio.
- Cliente: Bloquea cada computadora para que no pueda ser usada sin registrarse un alumno.

Bueno, el problema está en la aplicación cliente para administradores, porque esa aplicación es la que me muestra los reportes. Es decir esta aplicación se conecta con la aplicación servidor y le pide que le mande todos los registros en determinada fecha. Cuando el servidor recibe esa orden, hace la búsqueda y guarda los datos en un MSflexgrid y después los manda linea por linea a la aplicación cliente para administradores, pero resulta que para que me los mande correctamente debo poner un tiempo de retardo muy grande. Les pongo algo de código:


--- Código: Text ---    If Left(datos, 15) = "/dame_reporte1:" Then    tabla.Clear    z = Len(datos) - 15    aux = Right(datos, z)    c = 1       While (Mid(aux, c, 1) <> ",")        palabra = palabra & Mid(aux, c, 1)        c = c + 1      Wend          anio.Text = palabra          palabra = ""      c = c + 1          While (Mid(aux, c, 1) <> ",")        palabra = palabra & Mid(aux, c, 1)        c = c + 1      Wend            If palabra = "ENERO - JULIO" Then        semestre.Text = "1"      End If      If palabra = "AGOSTO - DICIEMBRE" Then        semestre.Text = "2"      End If          palabra = ""      c = c + 1          While (Mid(aux, c, 1) <> ",")        palabra = palabra & Mid(aux, c, 1)        c = c + 1      Wend          laboratorio.Text = palabra          palabra = ""      c = c + 1          While (Mid(aux, c, 1) <> ";")        palabra = palabra & Mid(aux, c, 1)        c = c + 1      Wend            carreras.Refresh      enc = 0      While Not (carreras.Recordset.EOF) And enc = 0        If carreras.Recordset.nombre_materia = palabra Then          enc = 1          carrera.Text = carreras.Recordset.clave_materia        End If        carreras.Recordset.MoveNext      Wend    '  For c = 1 To 30'    tabla.TextMatrix(c, 2) = ""'    tabla.TextMatrix(c, 3) = ""'  Next    Command2_Click  ' guarda los datos en el MSflexgrid llamado tabla    If Winsock1(Index).State = 7 Then    c = 0    While c < tabla.Rows      Winsock1(Index).SendData "/envio_reporte1:" & c & "," & tabla.TextMatrix(c, 0) & "," & tabla.TextMatrix(c, 1) & "," & tabla.TextMatrix(c, 2) & "," & tabla.TextMatrix(c, 3) & ";"      Delay (2)      c = c + 1    Wend  End If   End If   

Como se habrán dado cuenta utilizo el control winsock.

En este código tiene un tiempo (delay) de 2, funciona cuando corro el cliente para administradores en la misma máquina donde está el servidor, pero si lo hago desde otra tengo que poner un tiempo (delay) de 20, el cual tarda una eternidad en mandarme cerca 30 lineas, si no lo hago así, me llegan los datos desordenados.

Espero pudieran decirme como hacer para que en menos tiempo me mande los datos. De antemano gracias por responderme.

Navegación

[0] Índice de Mensajes

Ir a la versión completa