Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-10-2011
carlix_pc carlix_pc is offline
Registrado
NULL
 
Registrado: oct 2011
Posts: 1
Poder: 0
carlix_pc Va por buen camino
Ver actualizaciones a la BdD en tiempo real

Saludos, espero me podais dar una mano con una aplicación hecha en Delphi 7. Tengo dos TIBQuerys (QUser y QBitacora) cuyos datos se muestran en dos TDBGrids cada uno enlazado con su respectivo TDataSource. Tengo también un TIBQuery (QInsertarUser) para añadir registros. Todos ellos están conectados a un TIBDataBase (celina) y comparten el mismo TIBTransaction (Tcelina). Funciona de maravilla al insertar un registro. Sencillamente:
Código Delphi [-]
  QInsertarUser.Close;
  QInsertarUser.Params[0].AsString:="Mineral complejo";         // Tipo de carga  
  QInsertarUser.Params[1].AsString:="Mina San José";            // Procedencia de la carga
  QInsertarUser.Params[2].AsInteger:=125;                          // Peso en toneladas
  QInsertarUser.Params[3].AsString:="Zinc";                         // Mineral predominante
  QInsertarUser.ExecSQL;
  Tcelina.Commit;
  ShowMessage('Los datos se han guardado correctamente.');
Para ver el registro insertado inmediatamente en su TDBGrid simplemente hago:
Código Delphi [-]
  QUser.Close;
  QUser.Open;

Sin embargo "desaparecen" los registros de QBitacora (donde con un select muestro fecha, hora y descripcion de todas las tareas hechas) de su TDBGrid respectivo después de hacer toda la tarea de arriba. Me parece que al hacerle el commit a Tcelina, el QBitacora se cierra pues para que los registros no "desaparezcan" de su TDBGrid también tengo que hacer:
Código Delphi [-]
  QBitacora.Close;
  QBitacora.Open;
Y no hay mayor problema. El hecho es que quiero ver usando TDBGrids todos los cambios hechos inmediatamente después de insertar, modificar o eliminar un registro. El lío está en que quizás tenga que hacer la operación de cerrar y abrir tooooooodos los TIBQuerys (que comparten todos un mismo TIBTransaction). Puedo hacerlo pero ¿Hay forma de saltarse esta tarea tan morosa? Usé un TIBTransaction adicional para la consulta que permite añadir registros pero ya no puedo ver el registro inmediatamente añadido en el TDBGrid de QUser a menos que primero le haga un commit a su TIBTransaction y luego cierre y abra QUser. ¿Significa que hay que hacerle commit a todas las transacciones y abrir y cerrar sus respectivas consultas para ver los cambios hechos inmediatamente en un TDBGrid?
Es mi primera experiencia con Firebird, antes hacía todo usando el MSAccess y obviamente nunca tuve esos problemas pero la empresa ha crecido, hay más empleados, más usuarios y el MSAccess no va más. ¿Quizás deba usar más de un TIBDatabase o un TIBTransaction o tal
vez usar otro componente de la paleta de Interbase o cambiar alguna propiedad en el Object Inspector? Ojalá se haya comprendido.
Gracias mil y un abrazo...

Última edición por ecfisa fecha: 29-10-2011 a las 22:06:46. Razón: Agregar etiquetas [DELPHI] [/DELPHI]
Responder Con Cita
 



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
Video en Tiempo real Chalo78 Varios 0 26-01-2006 19:13:58
Video en tiempo real Fitoperu Internet 1 25-08-2005 22:47:07
Videos en tiempo real Albano Internet 4 07-06-2005 23:51:56
Buen Pc en Tiempo Real Rabata Varios 0 19-11-2003 17:48:01
Actualizar En Tiempo Real GIVO SQL 3 21-07-2003 20:10:31


La franja horaria es GMT +2. Ahora son las 20:08:39.


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