FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 .... |
#2
|
|||
|
|||
prueba a cerrar la transaccion con commitretaining y por supuesto.
¿k configuración tienes puesto en el objeto Transsaccion??? |
#3
|
|||
|
|||
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.
|
#4
|
|||
|
|||
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.
|
#5
|
|||
|
|||
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. |
#6
|
|||
|
|||
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;
__________________
Gabriel |
#7
|
|||
|
|||
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; |
|
|
|