Ver Mensaje Individual
  #2  
Antiguo 03-04-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.331
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por compualarma Ver Mensaje
Mi problema es que necesito leer uno por uno los registros nuevos que llegan
para generar los eventos dependiendo del tipo que sean. Ademas de que cada vez que hace un REQUERY este se va al comienzo del DBgrid.
Lo más eficiente que se me ocurre es que cada vez que realices la consulta te quedes con algun campo que "marque" cual es el último registro; un ID (autoincremental), un TimeStamp (Fechahora), de forma que la siguiente vez que hagas la consulta, en lugar de hacer el Requery, ejecutes la consulta utilizado el campo guardado, con el objetivo de sólo obtener los nuevos registros, no todos.

No se si me explico.

Ej. Si el último registro leído tiene ID=205, la siguiente consulta debería ser:

Código SQL [-]
  Select * from Tabla where ID > 205

Si lees tres y el último ID es el 208, la siguiente:
Código SQL [-]
  Select * from Tabla where ID > 208

Y así sucesivamente.

Si dicionalmente necesitas tener un Grid con todos los registros, utiliza un Query diferente al del Grid y en el del Grid sí puedes hacer un Requery para obtener los nuevos y luego un Locate para posicionarte en el que te interese.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita