Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-06-2007
Avatar de fedelphi
fedelphi fedelphi is offline
Miembro
 
Registrado: abr 2006
Ubicación: Santa Fe
Posts: 122
Poder: 19
fedelphi Va por buen camino
Refresco de DBGrid con post event

Hola foro, me surgio un problema que no le encuentro la vuelta. Estoy haciendo una aplicacion que funciona en red y se deben actualizar todas las PC que estan trabajando con la aplicacion. Estoy trabajando con firebird, delphi 7 y me conecto con los IB. Para lograrlo en el modulo de datos coloque un TIBEvents con las propiedades
Cita:
autoregister=true
database=basededatos
events='lote_actualizado'
nombre=IBEvents1
registered=false
tag=0
en el evento OnEventAlert
Código Delphi [-]
  if eventname='lote_actualizado' then
  begin
    showmessage('actualización');
    ibtacumuladoxlote.Refresh;//tabla a visualizar en el dbgrid
  end;
Lo que me sucede es que se actualiza solo la pc donde se realiza la operacion pero no en las demas, pero al mensaje lo muestra en todas las pc.
Tambien he probado colocar el TIBEvents en la forms donde esta el dbgrid pero ni siquiera muestra el mensaje.
Muchas Gracias
__________________
De lo que hay no falta nada!!!
Responder Con Cita
  #2  
Antiguo 19-06-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
¿Haz colocado un BreakPoint para ver si realmente no esta pasando por el ibtacumuladoxlote.Refresh;? pues si te muestra el mensaje también debería pasar por esa linea... cerrando y abriendo la tabla asi:
Código Delphi [-]
  if eventname='lote_actualizado' then
  begin
    showmessage('actualización');
    ibtacumuladoxlote.Close;//tabla a visualizar en el dbgrid
    ibtacumuladoxlote.Open;
  end;
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 19-06-2007
Avatar de fedelphi
fedelphi fedelphi is offline
Miembro
 
Registrado: abr 2006
Ubicación: Santa Fe
Posts: 122
Poder: 19
fedelphi Va por buen camino
Gracias jhonny, lo hice tambien de esa forma y nada, el codigo que incorpore fue
Código Delphi [-]
  if eventname='lote_actualizado' then
  begin
    showmessage('actuliza acumuladoxlote');
    ibtacumuladoxlote.Close;//tabla a visualizar en el dbgrid
    showmessage('ya realizó acumuladoxlote.close');
    ibtacumuladoxlote.Open;
    showmessage('ya realizó acumuladoxlote.open');
    //ibtacumuladoxlote.Refresh;
  end;
a los mensajes los muestra, el dbgrid queda en blanco, luego muestra otra vez los datos, pero sin actualizar, en cambio si lo actualiza en la pc desde donde se ingresan los datos.
Me parece que puede ser el modo en que actualizo los datos, a ver si sirve esto que hice o esta mal, a la tabla la actualizao con un trigger before insert, al ir introduciendo registros voy sumandole 1 al que corresponda en IBTAcumuladoxlote y a la tabla que dispara el trigger le escribo los datos asi
Código Delphi [-]
try
              if not modulodatos.IBTransaction1.Active then
                modulodatos.IBTransaction1.StartTransaction;
              if not Modulodatos.IBTAlmacen.Active then
                Modulodatos.IBTAlmacen.Active:=True;
              modulodatos.IBTAlmacen.Append;
              modulodatos.IBTAlmacen.FieldByName('ID_ALMACEN').AsInteger:=1;
              modulodatos.IBTAlmacen.FieldByName('NRO_TICKET').AsString:=ECodigo.Text;
              modulodatos.IBTAlmacen.FieldByName('ID_SUCURSAL').AsInteger:=sucursal_nro; //sucursal_nro es una variable global definida en ppal para pasar el numero de sucursal entre forms
              modulodatos.IBTAlmacen.FieldByName('ID_TICKET').AsInteger:=id_ticket;
              modulodatos.IBTAlmacen.FieldByName('FECHA_PRESENTACION').AsDateTime:=Date;
              modulodatos.IBTAlmacen.FieldByName('MONTO').AsFloat:=Monto;
              modulodatos.IBTAlmacen.FieldByName('FECHA_INGRESO').AsDateTime:=Date;
              modulodatos.IBTAlmacen.FieldByName('NRO_CAJA').AsInteger:=RGCajas.ItemIndex+1;
              modulodatos.IBTAlmacen.Post;
              modulodatos.IBTransaction1.CommitRetaining;
              
            except
              on E:Exception do
              begin
                modulodatos.IBTransaction1.RollbackRetaining;
                showmessage('Error al insertar en base de datos. '+e.Message);
              end;
            end;
puede ser algun problema en como guardo los datos? Gracias!!
__________________
De lo que hay no falta nada!!!
Responder Con Cita
  #4  
Antiguo 20-06-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Prueba quitando el llamado al evento "lote_actualizado" del "Trigger Before Insert" y colocalo en el "Trigger After Insert" y nos cuentas que sucede.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #5  
Antiguo 07-11-2007
Avatar de fedelphi
fedelphi fedelphi is offline
Miembro
 
Registrado: abr 2006
Ubicación: Santa Fe
Posts: 122
Poder: 19
fedelphi Va por buen camino
Disculpen por la tardanza de esta respuesta pero retome este proyecto nuevamente hace un par de semanas y encontre solucion a este problema colocando la propiedad read_committed en el params del IBtransaction.
Muchas gracias jhonny!!!
Fede
__________________
De lo que hay no falta nada!!!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Refresco de un dbgrid Ivan_25 C++ Builder 7 29-11-2005 12:46:18
IBDatase Insert Post Edit Post ariefez Firebird e Interbase 4 12-10-2005 02:53:04
BDN Radio live event jachguate Noticias 0 11-07-2005 17:43:04
Cómo cerrar una forma en el OnShow Event? pepix Varios 2 08-07-2004 18:09:37
Texto en celda del DBGrid antes del Post andre Conexión con bases de datos 6 16-06-2004 18:04:36


La franja horaria es GMT +2. Ahora son las 02:28:23.


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
Copyright 1996-2007 Club Delphi