Ver Mensaje Individual
  #5  
Antiguo 20-05-2004
Avatar de Voutarks
Voutarks Voutarks is offline
Miembro
 
Registrado: jul 2003
Ubicación: Islas Canarias
Posts: 118
Reputación: 21
Voutarks Va por buen camino
Me parece que tu error es de concepto.

Dices que tu tabla tiene 900 registros, que son muy pocos por cierto, y que te tarda al hacer un locate y al contestarte que lo hagas con SQL dices que ya tomas los datos con SQL y luego buscas con locate; por lo cual entiendo que adquieres todos los registros y luego buscas: ahí esta el error.

Si traes toda la tabla, ¿para que necesitas hacer eso?. Me explico.

Para mi el método correcto es elegir de entrada mediante SQL extrictamente los datos que se necesitan y nada más.

SI necesitas un registro, será ese el que pidas.

Si se pide un conjunto de registros (dataset), casi siempre es debido a que se necesitan para mostrar al usuario en un control tipo Grid tras haberse realizado una busqueda con criterios concretos. Aquí no tiene sentido mostrar más de 150 registros en el Grid, sería muy pesado de manejar para el usuario, si esto ocurre es conveniente informarle para que pueda hacer una búsqueda más definida. Cuando los registros esten el el grid será el usuario el que mueva el cursor local a traves de ellos para luego hacer las operaciones que desee así que practicamente nunca va a tener que localizar tu programa los registros.

Sobre lo que preguntas es posible poner filtros a los dataset y otros métodos pero pienso que lo que te comento es mejor, acabas con el problema, no tiene que utilizar locate ni ninguna cosa similar y tu programa ira mejor. Además creo que así está mejor diseñado para una futura expansión, como el crecimiento de la base de datos o la puesta en marcha o crecimiento en una red.
__________________
Emilio J. Curbelo
Responder Con Cita