PDA

Ver la Versión Completa : Refrescar datos de un DBGrid


Durbed
04-10-2004, 17:17:36
Tengo un DBGrid que obtiene los datos de una consulta (SelectSQL) de un IBDataSet, y quiero que cuando se actualicen los datos de las tablas, se actualicen en el Grid.

De forma detallada:
-Uso un IBTable donde modifico los datos de la tabla
-Tengo un IBDataSet que mediante SelectSQL obtiene los datos que me interesan de IBTable1
-Visualizo el resultado en un DBGrid

Problema:
-Al modificar la tabla IBTable1, los cambios no se reflejan en el DBGrid.

He intentado:
-En el evento del IBTable OnAlterTransaction y OnAlterInsert
IBDataSet1.Refresh;
---------------------------------------------------------------
IBDataSet1.Close; IBDataSet1.Open;
---------------------------------------------------------------
IBDataSet1.ExecuteSQL;

Gracias

Durbed
27-10-2004, 09:57:57
se soluciona con close y open, lo unico que lo habia puesto mal :eek:

rocio
29-01-2007, 16:01:53
se soluciona con close y open, lo unico que lo habia puesto mal :eek:
Como se soluciona el tema de refrescar. Podrias ser mas explícito:confused: ?, es que yo tengo el mismo problema. Gracias

Lepe
29-01-2007, 16:39:05
Pon un boton y este código:

IBDataSet1.Close;
IBDataSet1.Open;


ibdataset1 será el objeto que tienes asociado al Grid.

Hay otras técnicas, como usar readcommited en la transacción (aunque no se recomienda).

Otra opción es:
- en la BBDD usa un trigger afterInsert y enviando un mensaje al cliente con Post event 'nuevo cliente'.

- Ya en tu aplicación, la ventana que quiera ser informada de ese refresco usará un IBEventAlerter con el evento 'nuevo cliente' registrado. En el objeto TIBEventAlerter tienes el evento "OnEvent" donde puedes hacer ese refresco.

Saludos