PDA

Ver la Versión Completa : Consultas SQL muy pesadas al abrir la aplicación


thawulf
21-08-2006, 13:53:38
Hola a todos. Soy nuevo en este foro.

Os expongo mi problema. Estoy haciendo una aplicación que ataca una BD SQL Server 2000. Tengo una serie de tablas con muchos registros que tengo que cargar al comienzo de la aplicación ya que la primera ventana que sale es una lista de articulos al estilo Excel, para que el usuario pueda modificar precios, pesos, cantidades etc.

Mi problema es que hago un select de toda la tabla y claro ... la aplicación se eterniza al cargar.

Mi pregunta es: ¿como puedo hacer para que no me traiga todos los registros y pagine en un dbgrid? Es decir, que me traiga solo por ejemplo 50 registros y cuando el usuario haga scroll en el dbgrid vaya trayendo según necesidades.

Utilizo ADOQuerys.

Otra pregunta: ¿Hay manera de que si hago un post o un delete se refresque automáticamente la query sin necesidad de hacer un "refresh"?

Muy agradecido de antemano.

Bicho
21-08-2006, 14:18:10
Hola, no he trabajado nunca con SQL Server, pero puedes probar con la primera select ha hacer algo así:

select TOP 50 from tabla .... -- y las condiciones de la select
Eso te devolverá los 50 primeros registro de la consulta.

Respecto a tú segunda pregunta, no tengo respuesta, a bote pronto te diria que no hay otra manera, pero pueda que haya otra solucion y que alguien te la de.

Saludos

ContraVeneno
25-08-2006, 01:35:37
Otra solución podría ser que no se mostrara todos los campos, si no solo los necesarios. Es decir, en lugar de hacer un Select * sería traerse solo los campos necesarios.

La pregunta que yo me haría sería:
¿realmente es necesario mostrar todos los registros de entrada?

En un proyecto pasado, no mostrabamos la lista porque eran demasiados artículos, mas o menos el problema que tu tienes. Y lo que decidimos hacer, fue que no se mostrara una lista. Si no mostrar un formulario con los campos de la tabla y el primer campo era el código del artículo. El usuario buscaba el artículo que deseaba modificar y le mostrabamos la información solo de ese artículo.

En pocas palabras, mostrabamos un artículo a la vez.

En la pantalla de buscar era donde sí mostrabamos toda la lista, pero utilizando las respectivas condiciones en la cláusula where, y seleccionando solo el código, el nombre y alguno que otro dato importante de cada artículo.