¿Cómo mejorar la velocidad de mi red?

Hola, desarrollé un sistema con VB6, ADO y cuando lo instalo en una red con servidor y terminales W98, el tiempo de respuesta es muy alto, no sucede lo mismo en una red XP.
Probé en conectarme directamente (mediante el driver que maneja bases dbf) y mediante ODBC pero no hubo mejoría en ningún caso.
Por ejemplo se demora mucho cuando muestra los elementos de un listview, cuando lo ordena, también cuando se emiten reportes mediante Crystal Report 8.5.
Sabes como podría mejorar la velocidad, ya que la red no la puedo modificar.
Muchas gracias!
Cecilia.

1 Respuesta

Respuesta
1
Podrías enviarme el código de la parte cuando te conectas al listview
¿Usas recordset?
Si usas recordset por favor mandame la parte del open
hay que ver los tipos de cursos y lockeo que usas.
¿Esta enlazada?
Gracias
Leandro
Emperador20
Al no responderme espero que hayas podido resolver tu problema
Podrías terminar la pregunta o sino simplemente me haces una pregunta que diga que no hice nada y la descarto
Perdón por no contestarte antes pero estuve con otras cosas y esto lo postergue. Te envío todas las funciones que uso.
Si te llegan mal por favor dame alguna dirección de e-mail para enviártelo adjunto.
Muchas gracias!
' Carga el listview
Public Sub AddListView(listview As listview, _
isCliente As Boolean, _
Text As String, _
isCod As Boolean, _
istodos As Boolean)
'isCliente: Es cliente o vendedor?
'Text: texto a buscar
'isCod: hay que ordenar por código o por descripción?
'istodos: Lista todos los registros sin filtrar?
Dim sT As String
Dim sItem As String
Dim NewItem As listitem
Dim Conexion As String
Dim CX As ADODB.Connection
Dim RS As ADODB.Recordset
Dim lentxt As Integer
Screen.MousePointer = vbHourglass
'Crear la conexión y ponerle la cadena de conexión en su propiedad ConnectionString
Set CX = New ADODB.Connection
Conexion = "Driver={Driver do Microsoft dBase (*.dbf)}; " & _
"DBQ=" & gPathDB & " "
'CX.ConnectionString = "DSN=informes"
'Abrir el objeto Connection
CX.Open Conexion
'CX.Open
'Crear el Recordset
Set RS = New ADODB.Recordset
' Borra todos los elementos del listview
listview.ListItems.Clear
sT = ""
' Listar cliente
If isCliente Then
sT = " SELECT * FROM GVA14 "
' Por Código de cliente
If istodos Then
If isCod Then
sT = sT & " ORDER BY GVA14.Cod_client "
Else
sT = sT & " ORDER BY GVA14.Razon_soci Asc"
End If
ElseIf isCod Then
sT = sT & " WHERE GVA14.Cod_client>='" & Text & "'"
sT = sT & " ORDER BY GVA14.Cod_client "
' Por descripción
Else
lentxt = Len(Text)
sT = sT & " WHERE LEFT(GVA14.Razon_soci," & lentxt & ") = '" & Text & "'"
sT = sT & " ORDER BY GVA14.Razon_soci Asc"
End If
' Listar vendedor
Else
sT = " SELECT * FROM GVA23 "
' Por Código de vendedor
If istodos Then
If isCod Then
sT = sT & " ORDER BY GVA23.Cod_vended "
Else
sT = sT & " ORDER BY GVA23.Nombre_ven Asc"
End If
ElseIf isCod Then
sT = sT & " WHERE GVA23.Cod_vended>='" & Text & "'"
sT = sT & " ORDER BY GVA23.Cod_vended "
' Por descripción
Else
lentxt = Len(Text)
sT = sT & " WHERE LEFT(GVA23.Nombre_ven," & lentxt & ") = '" & Text & "'"
sT = sT & " ORDER BY GVA23.Nombre_ven Asc"
End If
End If
Call CargarRecordset_ADO(RS, CX, sT)
Do While Not RS.EOF
If isCliente Then
Set NewItem = listview.ListItems.Add(, , RS("Cod_client"))
NewItem.SubItems(1) = RS("Razon_soci")
Else
Set NewItem = listview.ListItems.Add(, , RS("Cod_vended"))
NewItem.SubItems(1) = RS("Nombre_ven")
End If
If listview.ListItems.Count = 1 Then
listview.ListItems.Item(1).Selected = True
End If
RS.MoveNext
Loop
RS.Close 'cerrar recordset
CX.Close 'cerrar conexión
Screen.MousePointer = vbDefault
End Sub
' Si los elementos coinciden con la búsqueda los copia a una nueva
' lista y muestra esta nueva ocultando la anterior (mantiene 2 listview
' una con todos los elementos y otra con los elementos que coinciden con
' los filtros de la búsqueda.)
Public Sub CopyListView(ListView2 As listview, _
listitem As listitem)
'listview2: listview destino
'listitem: item para agregar de la listview origen
'isCliente: Cliente o vendedor?
'isCod: hay que ordenar por código o por descripción?
Dim NewItem As listitem
Screen.MousePointer = vbHourglass
'ListView1.listitems(i).ListSubItems.Item (1)
Set NewItem = ListView2.ListItems.Add(, , listitem.Text)
NewItem.SubItems(1) = listitem.SubItems(1)
If ListView2.ListItems.Count = 1 Then
ListView2.ListItems(1).EnsureVisible
ListView2.ListItems.Item(1).Selected = True
End If
Screen.MousePointer = vbDefault
End Sub
Public Sub CargarRecordset_ADO(rec As ADODB.Recordset, _
con As ADODB.Connection, _
sT As String)
Err.Clear
On Error GoTo Err_Rs
rec.Open sT, con, adOpenDynamic
Exit Sub
Err_Rs:
If Err.Number <> 0 Then
MsgBox Err.Number & " - " & Err.Description
Set rec = Nothing
End If
End Sub
Rsbaja. Open con1, cn, adOpenDynamic, adLockOptimistic, 1
Hola lo de arriba es como yo hago el recordset
proba agregándole adlockoptimistic o cualquiera de las otras opciones que da el visual (son el tipo del lockeo del recordset, ¿ayuda muchísimo a la hora de traer datos?
Rec. Open sT, con, adOpenDynamic
esta es tu recordset
Proba y decime si hay diferencia
sino hay diferencia decime cuando notas que se pone lento al traer los datos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas