Ado lento al mostrar registros

TENGO UN PROGRAMA EN SQL Y MUESTRO EN UN DATAGRID TODOS LOS ARTICULOS QUE HABRA ALREDEDOR DE 75.000, PERO TARDA ALREDEDOR DE 4 ó 5 SEGUNDOS AL ENTRAR A LA PANTALLA. NO SE SI ESTO PUEDE IR MAS RAPIDO, PERO SI ES ASI VAYA MIERDA. LA CADENA DE CONEXION ES: Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=BDPRINCIPAL;Data Source=ARUIZ
Y LAS PROPIEDADES QUE TENGO EN EL ADO SON:
-Cursor location: aduseserver
-Cursor type: adopenstatic
-Locktype: adlockunspecified
-mode: admodeunknown
He probado todo tipo de combinaciones con las propiedades pero no noto rapidez. Si me puedes echar una mano te lo agradezco.

6 Respuestas

Respuesta
1
Primero revisa tu tabla en SQL, ejecuta el query analizer y verifica si estas definiendo bien tus llaves e índices.
El código que uso al mostrar registros en un datagrid es el siguiente:
LrsObjRecordset. Open Sql, gConexion, adOpenKeyset, adLockReadOnly
Donde Sql es la variable donde tengo la sentencia sql
El tipo de cursor es basado en un conjunto de llaves
Es de solo lectura
Si aún así sigue lento, quizá deberías evaluar la opción de descomponer la presentación de estos datos, quizás por categorías o filtros.
Respuesta
1
cn.CursorLocation = adUseClient
Usa esto y a ver como te va... nos vemos y si esto te srve puntúa
Respuesta
TE DIGO QUE NO pasa por la velocidad en este caso de tu consulta, sino depende la memoria de la maquina y es natural que tarde eso un datagrid, proba con la grilla hiperchical por ahí te ayuda, por ahí te lo achancha más
Porque el modo de usar el cursor están bien.
Respuesta
Hombre... 75000 registros es una cantidad considerable pero SQL dederia soportarlo bastante bien.
Intenta probar con esto:
CursorLocation = adUseClient
Open strSQL, Conex, adOpenForwardOnly, adLockReadOnly
A ver si hay suerte...
Respuesta
-1
La velocidad depende más de la Base de Datos que de cualquier otra cosa, si tienes muchos registros es lógico que tarde.
Respuesta
-1
Si el problema es al acceder a la pantalla, lo que tienes que jugar es con las funciones Load y Activate de la pantalla.
Primero cargas el formulario desde donde accedas a el, con Form. Load, y en su evento Form_Load, cargas los datos del RecordSource del ADO y luego lo muestras en pantalla.
Yo desde luego las propiedades esas que me has dicho del ADO nunca las utilizo, con el ConnectionString y el RecordSource tengo de sobra.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas