Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   ¿Cómo refrescar un registro de una adoQuery que ataca SQL Server? (https://www.clubdelphi.com/foros/showthread.php?t=56764)

socger 27-05-2008 10:23:14

¿Cómo refrescar un registro de una adoQuery que ataca SQL Server?
 
Muy buenas. Ante todo gracias por leerme este hilo.

Ataco una tabla en una bd en SQL Server. Mi Delphi es v.5, así que la ataco con componentes ADO. Tengo un adoQuery ligado a un adoConnection. El problema se me suscita a que tengo que refrescar un registro antes de editarlo, porque otro usuario puede habérmelo cambiado. ¿Serías tan amable de decirme cómo hacer sólo el refresco de este registro sin tener que refrescar toda la tabla ni que pierda el foco del dbGrid al registro en el que se encuentra?

Lo he solucionado refrescando toda la tabla y haciendo un locate sobre ciertos campos claves al registro donde estaba antes de hacer el refresco. Pero seguro que hay otra manera de evitar traerme por la red todos los registros, cuando sólo deseo en realidad refrescar sobre el que me encuentro.

Y ahora las gracias oportunas, por haber terminado de leer esta solicitud de ayuda sin reirte de mi (por novato) o no documentarme mejor en internet antes de hacer este hilo. Pero pensé en hacer esta consulta antes, por falta de tiempo.

Lo dicho, gracias.

tefots 27-05-2008 11:13:06

Con ADO no puedes 'refrescar' el registro actual en el que estás posicionado en el query.
tendrias que abrir otro query obteniendo solo el registro actual , y comprobando que los datos son iguales o distintos.

no obstante , no hay que refrescar , antes de modificar , ya que tienes la posibilidad de que mientras estés modificando el registro actual ,haya alguien por red que también esté modificandolo y le de al post antes que tu.

lo que hay que hacer es controlar el .post , para que en caso de error avise al usuario , y que el usuario decida si desea cancelar sus cambios y obtener los nuevos datos , o si desea modificar el registro con los 'nuevos datos' con posibildad de perdida de informacion provocada por la modificación de los datos por parte de otro usuario..

Saludos.

socger 28-05-2008 12:59:15

Gracias
 
Gracias, tefots. Esto ya me lo imaginaba.

Al final lo he solucionado todo creando una tabla de semáforo, donde voy guardando contadores. Al final incluso consigo mayor rapidez que tener que ir calculando cada vez que creara un registro el max para el próximo.

Saludos y gracias.


La franja horaria es GMT +2. Ahora son las 15:19:40.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi