Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Refresco de Datos en Interbase (https://www.clubdelphi.com/foros/showthread.php?t=15245)

PINO72 15-10-2004 12:08:41

Refresco de Datos en Interbase
 
Hola amigos, necesito que me aclareis una duda:

Estoy trabajando con los IBDataset y estoy teniendo una complicación desde hace unos dias. Cuando agrego algún registro en la tabla en cuestión, este pasa a ser el último si atender al orden establecido en la cláusula SQL Select y Refresh del DataSet. El refresco de datos mediante IBDataSet.Refresh no funciona y lo único que arregla la situación es el cierre y apertura de la tabla.

¿Se debe cerrar y abrir la tabla para que el orden vuelva a ser el adecuado?


Gracias ....

Rabata 15-10-2004 12:16:04

prueba a cerrar la transaccion con commitretaining y por supuesto.
¿k configuración tienes puesto en el objeto Transsaccion???

PINO72 15-10-2004 12:24:47

Sobre CommitRetaining
 
El metodo CommitRetaining está situado justamente en el evento AfterPost del Dataset (Para no olvidarme de él). En cuanto a la configuración de la transacción la tengo a Read Commited, como normalmente se aconseja.

T-man 15-10-2004 13:18:28

a mi me paso lo mismo y lo solucione como dices tu, haciendo un close y un open del ibdataset. ya hubo un hilo con este mismo tema y dicen que asi se arreglaba. al menos asi funciona y a mi nunca me trajo problemas.

brandolin 13-02-2005 22:40:08

Disculpen por retomar el hilo luego de mucho tiempo, es que ahora se presento el problema y no queria abrir uno nuevo. El tema es que tengo una grillay en la misma se agragar registros desde otro form. Con Close y Open del IBDataSet se soluciona el problema ya que se refresca la misma, pero el problema es que se vuelve al principio del los registros y debo buscar nuevamente donde estaba posicionado.

Existe alguna forma de que funcione el Refresh y solo refrescar le datos donde se esta parado.

Uso firebird 1.5 + IBX + Delphi 7.

Graicas a todos.

Gabriel 13-02-2005 22:55:59

Haber si te sirve este ejemplo
 
Procedure TFPoblaciones.Actualiza;
var
Buscar : Integer;
Begin
try
CursorReloj;
Buscar := FPoblacionesDM.QPoblacionesid_Poblacion.AsInteger;
FPoblacionesDM.QPoblaciones.Close;
FPoblacionesDM.QPoblaciones.Open;
FPoblacionesDM.QPoblaciones.locate('id_Poblacion',Buscar, [loPartialKey]);
CursorFlecha;
except
CursorFlecha;
raise;
exit;
end;
end;

brandolin 14-02-2005 18:21:30

Ya solucione el problema... al menos funciona por ahora... hay que probarlo un poco mas. Utilice los famosos bookmark... no se si es lo mas optimo pero bueno, salimos del paso. Aqui les paso el código....

Código:

procedure TfrmConsArticulos.ActualizarExecute(Sender: TObject);
var SavePlace: TBookmark;
begin
    SavePlace := IBArtic.GetBookmark;
    IBArtic.close;
    IBArtic.Open;
    IBArtic.GotoBookmark(SavePlace);
end;



La franja horaria es GMT +2. Ahora son las 10:11:24.

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