Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-07-2022
Avatar de Carmelo Cash
Carmelo Cash Carmelo Cash is offline
Miembro
 
Registrado: jul 2003
Ubicación: Buenos Aires
Posts: 261
Poder: 21
Carmelo Cash Va por buen camino
Hacer un Chat para mi aplicación....

Buenos días Foro:

Estoy utilizando Delphi7 y Firebird 2.5

Tengo una aplicación en la que se conectan mas de 30 operadores en distintos sectores de la empresa.

La idea es hacer un form para enviar y recibir mensajes, individuales o a los operadores de un área específica.

Con el envío no tengo problema, lo cargo para cada operador con el campo leído en cero y listo.

Para leerlo...

Acá es donde se genera la consulta:

Opción 1 - ¿Tengo que hacer un timer que constantemente esté leyendo la tabla de mensajes?
o
Opción 2 - ¿Existe alguna forma que al grabar un registro en la tabla de mensajes se "Avise" a la aplicación que hay un mensajes por leer.?

La Opción 1 está muy fácil, pero los timers trato de evitarlos, porque si hay varios se pueden cruzar .
La Opción 2 no sé como hacerla.

Bueno.. hecha la consulta .

Desde ya muchas gracias por su atención.

Responder Con Cita
  #2  
Antiguo 14-07-2022
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Puedes usar los eventos de la base de datos para que lance un mensaje, aunque es más complicadito que un simple timer.
También puedes usar un TRxTimerList de las RXlib, es mis programas siempre utilizo ese componente en lugar de los timers "normales".
Se trata de una "list timer", con un solo componente puedes controlar todos los timers que necesites.
Échale un vistazo, es muy intuitivo de usar.
Responder Con Cita
  #3  
Antiguo 14-07-2022
Avatar de Carmelo Cash
Carmelo Cash Carmelo Cash is offline
Miembro
 
Registrado: jul 2003
Ubicación: Buenos Aires
Posts: 261
Poder: 21
Carmelo Cash Va por buen camino
Gracias Casimiro...
cuando te refieres a :
"Puedes usar los eventos de la base de datos para que lance un mensaje,"

Por donde puedo empezar a analizar esto? que sería? un trigger?
Responder Con Cita
  #4  
Antiguo 15-07-2022
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Me refiero a esto.
Responder Con Cita
  #5  
Antiguo 15-07-2022
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Carmelo Cash Ver Mensaje
Acá es donde se genera la consulta:

Opción 1 - ¿Tengo que hacer un timer que constantemente esté leyendo la tabla de mensajes?
o
Opción 2 - ¿Existe alguna forma que al grabar un registro en la tabla de mensajes se "Avise" a la aplicación que hay un mensajes por leer.?

La Opción 1 está muy fácil, pero los timers trato de evitarlos, porque si hay varios se pueden cruzar .
La Opción 2 no sé como hacerla.
Para la opción 2 tienes los eventos de Base de Datos.
Revisa esta entrada del blog (https://neftali.clubdelphi.com/event...notifications/) para que te hagas una idea del tema. Es sobre SQLServer, pero con ello puedes entender el tema de eventos. A partir de ahí hay que ver si se puede trasladar a Firebird.

Aquí también tienes el link a la web de embarcadero sobre el tema:
https://docwiki.embarcadero.com/RADS...lerts_(FireDAC)

Para poder utilizarlos debes cumplir 2 condiciones:
  • Que la Base de datos que estás utilizando tenga eventos implementados
  • Que los componentes de acceso que usas, los soporten para esa B.D.
Por lo que comenta [Casimiro] Firebird dispone de eventos en su versión 2.5.
Los componentes de Delphi que soportan Eventos son los de FireDAC (que no están disponibles en Delphi7).


Para solventar lo segundo, si tienes alguna versión "nueva" de Delphi (que tenga FireDAC), sólo se me ocurre que impementes lo necesario en una DLL (con la versión nueva utilizando FireDAC) y la llames desde tu programa en Delplhi 7.
O encontrar algunos otros componentes para Delphi7 que soporten eventos de FireBird.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 15-07-2022
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Los eventos los he usado desde siempre, incluso con delphi 4 y con las IBX, FIBplus, etc.
Responder Con Cita
  #7  
Antiguo 15-07-2022
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Los eventos los he usado desde siempre, incluso con delphi 4 y con las IBX, FIBplus, etc.

No lo sabía.
Pues entonces ese es el camino. Mucho más sencillo.
Te evita tener que estar haciendo "pooling" continuamente sobre la tabla.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #8  
Antiguo 15-07-2022
Avatar de Carmelo Cash
Carmelo Cash Carmelo Cash is offline
Miembro
 
Registrado: jul 2003
Ubicación: Buenos Aires
Posts: 261
Poder: 21
Carmelo Cash Va por buen camino
Listo

Ya tengo para arrancar, les contaré como termina esta historia.

Muchas Gracias a los dos.
Responder Con Cita
Respuesta



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
Como hacer un programa de chat ahkimpech Internet 8 27-08-2011 15:21:46
como hacer una aplicacion para que arranque junto con windows olivia88 Varios 7 28-08-2010 05:18:50
como hacer una especie de chat(consulta chat) bellleti Conexión con bases de datos 3 10-07-2007 13:30:01
como hacer para que mi aplicacion se auto copie gulder API de Windows 4 05-09-2005 23:17:35
Cómo hacer para que la aplicación detecte la pulsación de 2 teclas ¿? Slaughter Varios 5 13-02-2004 15:37:28


La franja horaria es GMT +2. Ahora son las 11:05:51.


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