<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    Hola todos..<br>
    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. <br>
    Aparentemente me funciona porque en el ZIBEventAlerter1EventAlert,
    donde hago los refresh coloqué un showmessage a ver si se disparaba.<br>
    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ó.<br>
    <br>
    (Aclaro q el componente ZIBEventAlerter lo coloqué en el form del
    programa1 donde están los grids)<br>
    <br>
    ya probé hacer:<br>
    tbl.refresh<br>
    dbgrid.refresh<br>
    <br>
    y también:<br>
    tbl.close;<br>
    tbl.open;<br>
    dbgrid.refresh (el dbgrid q muestra esa tabla)<br>
    <br>
    (también tengo una consulta q debo actualizar, q no la puse allí
    para simplificar, y es la misma cosa)<br>
    <br>
    y nada!<br>
    solo aparece el cambio si cierro el programa y lo vuelvo a abrir....<br>
    <br>
    <br>
    <br>
    <br>
    <br>
    El 27/09/2012 08:53 a.m., Gastón Dall' Oglio escribió:
    <blockquote
cite="mid:CACOHOD6QuNSxyy-wR__HdT=5z13Qgh_pevBmAn4OpxxddyCFOg@mail.gmail.com"
      type="cite">
      <div>Hola.<br>
      </div>
      <div><br>
      </div>
      <div>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.</div>
      <div><br>
      </div>
      <div>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:</div>
      <div><br>
      </div>
      <div>CREATE TRIGGER MITABLA_CAMBIO FOR MITABLA ACTIVE<br>
        AFTER INSERT OR UPDATE OR DELETE POSITION 10<br>
        AS <br>
        BEGIN <br>
      </div>
      <div>    POST_EVENT 'mitabla_cambio';</div>
      <div>END</div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div>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.</div>
      <div><br>
      </div>
      <div>Saludos.</div>
      <div><br>
      </div>
      <br>
      <div class="gmail_quote">El 26 de septiembre de 2012 23:36, Oscar
        Benitez Carrillo <span dir="ltr"><<a moz-do-not-send="true"
            href="mailto:obc5005@yahoo.com.mx" target="_blank">obc5005@yahoo.com.mx</a>></span>
        escribió:<br>
        <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
          0.8ex; border-left: 1px solid rgb(204, 204, 204);
          padding-left: 1ex;">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:<br>
          <br>
          <a moz-do-not-send="true"
            href="http://www.intitec.com/varios/Firebird_uso_de_eventos.pdf"
            target="_blank">http://www.intitec.com/varios/Firebird_uso_de_eventos.pdf</a><br>
          <br>
          <a moz-do-not-send="true"
            href="http://www.firebird.com.mx/modules/AMS/article.php?storyid=35"
            target="_blank">http://www.firebird.com.mx/modules/AMS/article.php?storyid=35</a><br>
          <br>
          Espero te sirva, saludos.<br>
          Oscar Benitez<br>
          <br>
          <br>
          El 26/09/2012 02:33 p.m., Paola Bruccoleri escribió:
          <div class="HOEnZb">
            <div class="h5"><br>
              <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
                0.8ex; border-left: 1px solid rgb(204, 204, 204);
                padding-left: 1ex;">
                Hola todos..<br>
                <br>
                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)<br>
                A su vez hay otro programa (programa2) que carga items
                en esa misma tabla.<br>
                <br>
                Necesito que el gris del programa1 siempre esté
                mostrando los agregados q hace el programa2<br>
                ¿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?<br>
                tengo a la tabla, propiedad updateMode = umUpdateChanged<br>
                <br>
                Lo mismo me pasa en otro grid q está en ese form...<br>
                <br>
                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.<br>
                <br>
                (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)<br>
                <br>
              </blockquote>
            </div>
          </div>
        </blockquote>
      </div>
    </blockquote>
    <br>
  </body>
</html>