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 19-06-2021
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
database name missing

Hola buenas tardes.

Trabajo con: FB 2.0, Delphi6, Win10

Explico, estoy tratando de usar el componente IBEvent para "refrescar" un query q está enlazado en DBGrid de un 1 equipo en RED, la idea es q en este equipo se este actualizando el GRID con los movimientos de inserción que se hagan en las otras terminales.

Me he documentado con el uso del componente y he consultado los siguientes links, entre otro:

https://stackoverflow.com/questions/49918075/firebird-events-and-firewall-issue-tibevents
https://www.clubdelphi.com/foros/showthread.php?t=44493


Lo anterior porque me esta presentando el siguiente problema:
Cita:
Database name missing
Ya configure lo q dicen los links: Abrir el puerto en el Firewall, especifiqué el 6050 asi como en el archivo Firebird.conf )

El componente lo tengo en un formulario MDI que es como el monitor donde el usuario deberá ver los registros que se estén INSERTANDO.

Ya defini el trigger como sigue:

Código SQL [-]
CREATE TRIGGER TRG_ALERT_NEW_COMANDA FOR COMANDA_MAESTRO
ACTIVE AFTER INSERT POSITION 1
AS
begin
  POST_EVENT 'NEW_COMANDA';
end

En el IBEvent en su propiedad "Database" lo tengo enlazado al componente IBDatabase q se encuentra en un Datamodule.
En la propiedad "Name" del IBEvent, tengo registrado el mismo nombre que tengo definido en el trigger (NEW_COMANDA)
Y en "Registered", lo tengo en TRUE.

Al momento de seleccionar el formulario donde se encuentra el componente IBEvent, me salta el error...

Asi mando llamar al formulario:
Código Delphi [-]
procedure TfrmMenuPrincipal.Registro1Click(Sender: TObject);
begin
     if FindComponent('frmMesasAbiertas2') = nil then
           frmMesasAbiertas2:=TfrmMEsasAbiertas2.Create(self);
      frmMEsasAbiertas2.Show;
end;

Usando el Trace, se detiene en esta linea:
Código Delphi [-]
           frmMesasAbiertas2:=TfrmMEsasAbiertas2.Create(self);

Y es aquí donde muestra el mensaje del "Database name missing".

en tiempo de diseño, hago los siguientes cambios en las propiedades del IBEvent: Database hago en enlace al IBDatabase del Datamodule (Esta bien definido), Name escribo "NEW_COMANDA", Registered a True;

Me pudieran orientar...que mas hará falta configurar???
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!

Última edición por mRoman fecha: 19-06-2021 a las 00:20:04.
Responder Con Cita
  #2  
Antiguo 19-06-2021
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

En el TIBEvents pon la propiedad Registered a False.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 19-06-2021 a las 18:04:49.
Responder Con Cita
  #3  
Antiguo 19-06-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por mRoman Ver Mensaje
Abrir el puerto en el Firewall, especifiqué el 6050
No me suena ese puerto.
Responder Con Cita
  #4  
Antiguo 20-06-2021
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
No me suena ese puerto.
Hola Casimiro, entre la documentación consultada, lo mencionan también el 3051....pero no sé si es correcto ambos o solo el 3051.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #5  
Antiguo 20-06-2021
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

En el TIBEvents pon la propiedad Registered a False.

Saludos
Ok, gracias ecfisa por contestar....

Lo haré asi como me comentas.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #6  
Antiguo 20-06-2021
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Cita:
Empezado por mRoman Ver Mensaje
Ok, gracias ecfisa por contestar....

Lo haré asi como me comentas.
Hola...lo aplique como me sugeriste y NO manda ningun error, ya quedó...pero ahora el código q puse en la propiedad IBEventsEventAlert, no se ejecutan
Código Delphi [-]
procedure TfrmMesasAbiertas2.IBEvents1EventAlert(Sender: TObject;
  EventName: String; EventCount: Integer; var CancelAlerts: Boolean);
begin
     qryComandero.Refresh;
     FormShow(Sender);
     ShowMessage('Actualizar grid');
end;

Se supone que las 3 lineas dentro de este procedure, se deberían de ejecutar, pero no lo hace. Que otra debo considerar
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #7  
Antiguo 20-06-2021
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Cita:
Empezado por mRoman Ver Mensaje
Hola...lo aplique como me sugeriste y NO manda ningun error, ya quedó...pero ahora el código q puse en la propiedad IBEventsEventAlert, no se ejecutan
Código Delphi [-]
procedure TfrmMesasAbiertas2.IBEvents1EventAlert(Sender: TObject;
  EventName: String; EventCount: Integer; var CancelAlerts: Boolean);
begin
     qryComandero.Refresh;
     FormShow(Sender);
     ShowMessage('Actualizar grid');
end;

Se supone que las 3 lineas dentro de este procedure, se deberían de ejecutar, pero no lo hace. Que otra debo considerar
Estoy consultando un hilo de eficsa....sobre esto.
http://www.clubdelphi.com/~marcsc/fo...ad.php?t=78629

...pero creo que no me ayudó mucho, fue un error de declaración del evento. uff...seguire buscando.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!

Última edición por mRoman fecha: 20-06-2021 a las 02:40:35.
Responder Con Cita
  #8  
Antiguo 20-06-2021
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo.

¿ Registraste los eventos en tiempo de ejecución ?

Código Delphi [-]
  IBEvents1.Database     := IBDatabase1;  
  IBEvents1.AutoRegister := True; 
  IBEvents1.Events.Clear;
  IBEvents1.Events.Add( 'NEW_COMANDA' );
  ...
  IBEvents1.RegisterEvents;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 20-06-2021
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola de nuevo.

¿ Registraste los eventos en tiempo de ejecución ?

Código Delphi [-]
  IBEvents1.Database     := IBDatabase1;  
  IBEvents1.AutoRegister := True; 
  IBEvents1.Events.Clear;
  IBEvents1.Events.Add( 'NEW_COMANDA' );
  ...
  IBEvents1.RegisterEvents;

Saludos
No...lo haré.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #10  
Antiguo 20-06-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
El puerto que usa firebird es el 3050, no el 6050 como has puesto antes, supongo que habrá sido un lapsus al teclearlo.
De todas formas, mira este enlace, es algo antiguo pero el funcionamiento es el mismo, ahí te explica puertos y demás.
Responder Con Cita
  #11  
Antiguo 20-06-2021
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Ya lo hice...y no marca error...pero sigue sin ejecutar el código del evento EventAlert.

Seguiré buscando...
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #12  
Antiguo 20-06-2021
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
El puerto que usa firebird es el 3050, no el 6050 como has puesto antes, supongo que habrá sido un lapsus al teclearlo.
De todas formas, mira este enlace, es algo antiguo pero el funcionamiento es el mismo, ahí te explica puertos y demás.
Hola Casimiro.

Efectivamente el puerto de conexión que usa FB es el 3050, pero en la documentación que consulte, hablaban de habilitar (descomentar) dentro del archivo Firebird.conf un puerto auxiliar RemoteAuxPort para las notificaciones, en este caso manejó el 3051 como ejemplo y en otra link usaron el 6050...considero q cualquiera de los 2 funciona...

Aqui el link.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #13  
Antiguo 20-06-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No veo lo del 6050, y el enlace que indican ahí es el mismo que he puesto yo.
Responder Con Cita
  #14  
Antiguo 20-06-2021
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Aparte de descomentar el RemoteAuxPort XXXX en el archivo firebird.conf ¿ Abriste el mismo puerto desde el firewall de Windows ?

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #15  
Antiguo 21-06-2021
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Aparte de descomentar el RemoteAuxPort XXXX en el archivo firebird.conf ¿ Abriste el mismo puerto desde el firewall de Windows ?

Saludos
Si, también ahí lo hice.

Pero sigue sin ejecutar el código ingresado en el evento EventAlert
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #16  
Antiguo 03-07-2021
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Solucionado

Hola...

Continuando con este hilo...

En el evento del IBEvent (OnEvenAlert), lo registré asi.

Código Delphi [-]
procedure TfrmMesasAbiertas2.IBEvents1EventAlert(Sender: TObject;
  EventName: String; EventCount: Integer; var CancelAlerts: Boolean);
begin
     if EventName='NEW_COMANDA' then
     begin
        RefreshComandero();
     end;
end;

Lo que hice al final fue configurar una PC como terminal donde los MESEROS capturan las comandas y al momento de CERRAR LA CUENTA, se debe actualizar el COMANDERO -el cual esta en la caja (Servidor)-, previo a esto, estuve haciendo pruebas de otra cosa como la comunicación entre equipos dentro de la RED, lo cual al principio no se veían las PC entre ellas, lo anterior derivado del Firewall, lo desactive momentáneamente y fue así como las PC se vieron entre si -haciendo ping-.

Pues asi deje esta configuración del Firewall y empecé a terminar el proceso que había iniciado con las Alertas para q el comandero se actualizará cuando el MESERO cerrara la cuenta....YA LO HACE, YA ACTUALIZA EL COMANDERO!!., por lo tanto CREO que esto estaba intefiriendo con las alertas....ahora lo realiza sin problemas.

Esto hace el procedimiento "RefreshComandero()"
Código Delphi [-]
procedure TfrmMesasAbiertas2.RefreshComandero;
begin
    qryComandero.Close;
    qryComandero.Open;
end;

Que es ejecutado cada vez que un MESERO cierra la cuenta de un COMENSAL.

Sin duda habrá alguien mas que sea mas preciso en lo que he descrito y nos comente si lo del firewal tuvo algo que ver....

Saludos.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
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
missing operator or semicolon MarcosDG95 Varios 3 07-08-2019 03:40:18
Missing dataset property liito16 Conexión con bases de datos 2 23-02-2011 23:36:53
Missing DataSet Property foxito Providers 2 07-11-2008 13:14:25
Missing DriverName property identsoft Conexión con bases de datos 0 26-05-2008 09:28:20
Missing right quote luisny Firebird e Interbase 6 19-03-2004 14:29:47


La franja horaria es GMT +2. Ahora son las 02:08:14.


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