[Lazarus-es] actualizar grid automáticamente

Rubén Ibáñez ruben.mariano.ibanez en gmail.com
Jue Sep 27 15:53:45 CEST 2012


El 27 de septiembre de 2012 09:35, Paola Bruccoleri <
pbruccoleri en adinet.com.uy> escribió:

> **
> Hola todos..
> muchas gracias por las sugerencias. Antes de probar con un timer, comencé
> a estudiar esto de los eventos. Es muy sencillo y claro el concepto.
> Aparentemente me funciona porque en el ZIBEventAlerter1EventAlert, donde
> hago los refresh coloqué un showmessage a ver si se disparaba.
> Y lo hace tanto si agrego registros desde programa1 (donde están los
> grids) como de programa2.. PERO... los refresh no refrescan nada si agrego
> registros desde el programa2, por más que el evento se disparó.
>
> (Aclaro q el componente ZIBEventAlerter lo coloqué en el form del
> programa1 donde están los grids)
>
> ya probé hacer:
> tbl.refresh
> dbgrid.refresh
>
> y también:
> tbl.close;
> tbl.open;
> dbgrid.refresh (el dbgrid q muestra esa tabla)
>
> (también tengo una consulta q debo actualizar, q no la puse allí para
> simplificar, y es la misma cosa)
>
> y nada!
> solo aparece el cambio si cierro el programa y lo vuelvo a abrir....
>
>
>
>
>
> El 27/09/2012 08:53 a.m., Gastón Dall' Oglio escribió:
>
> Hola.
>
>  Claro, lo mejor son eventos. Pocos motores de bases de datos tienen este
> concepto de eventos, que es una notificación enviada desde el servidor al
> cliente.
>
>  Por ejemplo, podés disparar un evento en un trigger de una tabla que te
> interesa notificar los cambios a los clientes conectados a la base de
> datos. El trigger puede ser polivalente (se dispara ante mas de un tipo de
> evento), con lo cual te ahorras escribir varios trigger para la misma
> funcionalidad. Es mejor darle al al trigger una position alta así se
> dispara último, si hay otros trigger sobre la misma tabla. Ejemplo:
>
>  CREATE TRIGGER MITABLA_CAMBIO FOR MITABLA ACTIVE
> AFTER INSERT OR UPDATE OR DELETE POSITION 10
> AS
> BEGIN
>      POST_EVENT 'mitabla_cambio';
> END
>
>
>  Para testear, en Flame Robin fijate que si abrís el menú contextual de
> una base de datos, en Advanced -> Monitor Events, podes agregar un evento y
> monitorearlo.
>
>  Saludos.
>
>
> El 26 de septiembre de 2012 23:36, Oscar Benitez Carrillo <
> obc5005 en yahoo.com.mx> escribió:
>
>> Hola Paola, por qué no pruebas con el uso de eventos en firebird, alguna
>> vez hice algo parecido y utilizé los eventos de firebird, la verdad no
>> utilizo zeos pero he visto que traen el componente TZIBEventAlerter y
>> TZpgEventAlerter que capturan los eventos de la base de datos, para el uso
>> de eventos puedes ver aqui:
>>
>> http://www.intitec.com/varios/Firebird_uso_de_eventos.pdf
>>
>> http://www.firebird.com.mx/modules/AMS/article.php?storyid=35
>>
>> Espero te sirva, saludos.
>> Oscar Benitez
>>
>>
>> El 26/09/2012 02:33 p.m., Paola Bruccoleri escribió:
>>
>>  Hola todos..
>>>
>>> tengo una aplicación (programa1) siempre abierta, donde en un form hay
>>> un grid con datos de una tabla de firebird (es una tabla q se maneiene con
>>> muy pocos registros x eso no usé una consulta)
>>> A su vez hay otro programa (programa2) que carga items en esa misma
>>> tabla.
>>>
>>> Necesito que el gris del programa1 siempre esté mostrando los agregados
>>> q hace el programa2
>>> ¿La única forma que tengo de que ese grid vea reflejado constantemente
>>> esos agregados, es poniendo un timer que haga el refresh de la tabla? o de
>>> qué otra manera puede ser?
>>> tengo a la tabla, propiedad updateMode = umUpdateChanged
>>>
>>> Lo mismo me pasa en otro grid q está en ese form...
>>>
>>> Ahora he probado ejecutando los 2 programas en la misma máquina y el
>>> grid no se me actualiza si no salgo del programa1 y vuelvo a entrar.
>>>
>>> (uso componentes zeos 7, y Lazarus 0.9.31 r30432 FPC 2.5.1
>>> i386-win32-win32/win64... si, se que está desactualizado pero no he podido
>>> hacerlo)
>>>
>>>
>  Hola Paola:
>
¿Hay un tbl.Post? ¿Lo has probado?
Rubén.


> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20120927/06c33bf2/attachment-0002.html>


More information about the Lazarus-es mailing list