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 Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-03-2016
sonjeux sonjeux is offline
Miembro
 
Registrado: jul 2004
Posts: 60
Poder: 20
sonjeux Va por buen camino
Question Sistema de Tickets con base de datos Firebird

Saludos, deseo hacer un sistema de tickets usando una base de datos en firebird, tengo una duda, como podria saber que se realizo un nuevo registro en la base de datos en las maquinas clientes? hay algun componente para eso? gracias.
Responder Con Cita
  #2  
Antiguo 17-03-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Podrias investigar sobre eventos

PD: No das informacion suficiente
Responder Con Cita
  #3  
Antiguo 17-03-2016
Avatar de Luis M.
[Luis M.] Luis M. is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Ripollet - Barcelona
Posts: 212
Poder: 20
Luis M. Va por buen camino
Hola.
Así a groso modo, podrías guardar en una tabla temporal el número de registro de
la tabla tickets y comprobar cada X tiempo si hay algún registro más.
Responder Con Cita
  #4  
Antiguo 18-03-2016
Avatar de Osorio
Osorio Osorio is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 251
Poder: 21
Osorio Va por buen camino
Post_Event

En mis tiempos usaba una funcionalidad e InterBase (y tambiend e Firebird) que es el post_event combinada con un componente TIBEvent.

Aqui hay info viejita (aun dice borland) pero creo que igual de válida en nuestros dias.

http://www.devgear.co.kr/pdf/ib_events.pdf
Responder Con Cita
  #5  
Antiguo 18-03-2016
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Para Firebird es igual, pero usa mejor su PDF: http://www.firebirdsql.org/file/docu...ird_events.pdf

Tiene sus límites, así que no abuses de él. Ten en cuenta que en "cualquier inesperado momento puede llegar ese evento", imagina que el usuario está modificando un registro, llega el evento y ordenas cerrar consultas y abrirlas de nuevo para refrescar... Ups! se perdió la modificación que estaba realizando...

Quizás mejor un botón de "refrescar datos", o que el evento solo sea para cambiar el color del botón "refrescar datos" (poniendo otro icono). Así el usuario sabe que hay nuevos datos y decide pulsar o no.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 18-03-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Cita:
Empezado por Lepe Ver Mensaje
Ten en cuenta que en "cualquier inesperado momento puede llegar ese evento", imagina que el usuario está modificando un registro, llega el evento y ordenas cerrar consultas y abrirlas de nuevo para refrescar... Ups! se perdió la modificación que estaba realizando...

Eso se puede solucionar facilmente, basicamente si el DataSet esta en edicion no refrescas la consulta
Responder Con Cita
  #7  
Antiguo 19-03-2016
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Un TIBEventAlert, solo puede registrar 15 eventos como máximo. Además es asíncrono y te da un contador con las "repeticiones que ha habido".

Cita:
Empezado por AgustinOrtu Ver Mensaje
Eso se puede solucionar facilmente, basicamente si el DataSet esta en edicion no refrescas la consulta
Sí, por supuesto, pero eso puede complicarse muy mucho cuando tienes 10 tablas dependientes unas de otras, con eventos informando de cambios en cada tabla. Estas en tu editor de textos, queriendo mostrar datos de un vencimiento de la factura del cliente, mientras los demás puestos modifican cosas que tú necesitas.

Debes tener en cuenta que ese evento puede llegar en cualquier momento. La complicación en la programación no justifica la necesidad de refrescar los datos automáticamente, a menos que sea un sistema "en tiempo real"

Es más, imagina que no estás en edición, y llegan 10 eventos, uno por tabla, en sistemas multiusuarios, multiplica por 10 puestos; ¿actualizas todos los datos de tus 10 terminales? puede que el usuario esté usando el Word.

¿Y si está mirando un listado de tickets por fechas y éste no para de actualizarse en pantalla? Lo normal es que inicies una transacción y el listado que estás mirando sea estático, en el momento que pediste los datos.

Una inserción en la tabla clientes no es importante. Una inserción en la tabla ChatEntreUsuarios sí lo es. A eso me refería con "no abusar de los eventos".

Pero vamos, igual me estoy poniendo en casos de uso que no se van a dar...

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #8  
Antiguo 19-03-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Lepe Ver Mensaje
Un TIBEventAlert, solo puede registrar 15 eventos como máximo. Además es asíncrono y te da un contador con las "repeticiones que ha habido".
Sí, por supuesto, pero eso puede complicarse muy mucho cuando tienes 10 tablas dependientes unas de otras, con eventos informando de cambios en cada tabla. Estas en tu editor de textos, queriendo mostrar datos de un vencimiento de la factura del cliente, mientras los demás puestos modifican cosas que tú necesitas.
Debes tener en cuenta que ese evento puede llegar en cualquier momento. La complicación en la programación no justifica la necesidad de refrescar los datos automáticamente, a menos que sea un sistema "en tiempo real"
Es más, imagina que no estás en edición, y llegan 10 eventos, uno por tabla, en sistemas multiusuarios, multiplica por 10 puestos; ¿actualizas todos los datos de tus 10 terminales? puede que el usuario esté usando el Word.
¿Y si está mirando un listado de tickets por fechas y éste no para de actualizarse en pantalla? Lo normal es que inicies una transacción y el listado que estás mirando sea estático, en el momento que pediste los datos.
Una inserción en la tabla clientes no es importante. Una inserción en la tabla ChatEntreUsuarios sí lo es. A eso me refería con "no abusar de los eventos".
Pero vamos, igual me estoy poniendo en casos de uso que no se van a dar...
Saludos
Totalmente de acuerdo con lo que dices.
Responder Con Cita
  #9  
Antiguo 19-03-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Gracias por la aclaracion, sin duda de acuerdo

Nunca he trabajado con eventos ni con componentes como los TIBxxx, es mas que nada la teoria lo que tengo presente

Por otro lado mi forma de trabajar usando objetos y no el el combo controles data aware + dataset; prefiero usar los controles tradicionales y mantener la info en memoria (objetos) y luego enviar los datos cuando se pulsa "aceptar"

De este modo quiza sea "mas codigo" hacer algunas cosas pero no tengo problemas tales como "cerre el dataset y ups perdi los datos"

En los casos que describes como "una insercion en la tabla ChatEntreUsuarios", podria capturar ese evento y en lugar de refrescar autmaticamente como decis, podria poner un cartel de que "hay nuevas ... bla bla". Por ejemplo el propio ClubDelphi lo hace de esta manera
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
Conectar base de datos Firebird con base de datos Oscommerce 2.3.3 Adriadob Firebird e Interbase 11 31-10-2012 12:28:46
Sistema con base Firebird pelikno Firebird e Interbase 11 02-05-2012 15:33:58
¿Qué sistema de base de datos utilizo? Angel Fernández Conexión con bases de datos 16 25-01-2007 17:05:33
Cambio del sistema operativo de una base de datos HombreSigma Conexión con bases de datos 1 20-07-2006 00:52:57
Copiar una base de datos de un sistema hecho en Cliper a Paradox ¿? zugazua2001 Varios 3 07-06-2005 23:06:33


La franja horaria es GMT +2. Ahora son las 03:27:36.


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