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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-12-2008
Avatar de Kipow
Kipow Kipow is offline
Miembro
 
Registrado: abr 2006
Ubicación: Guatemala
Posts: 329
Poder: 19
Kipow Va por buen camino
IBEvents registra ultimo evento (dispara todos)

Saludos amigos foreros

Tengo un problema con los ibevents utilizo
Delphi 2009 Update 2,
Firebird 2.1.1 32bits
Vista 64bits.

El entorno es el siguiente:

Tengo en mi formulario un componente TIBEvents al cual le asigno corretamente las propiedades que necesito siendo asi la base de datos y 3 eventos distintos. Al abrir el formulario los registro con

Código Delphi [-]
IBEvents1.Registered := True;


y al cerrar el formulario pues hago lo contrario

Código Delphi [-]
IBEvents1.Registered := False;


El problema es que solamente me registra el ultimo evento de la lista y obvio que el evento OnEventAlert solamente se dispara al con este ultimo.
peeero se dispara para los 3 eventos de la lista. algo raro pero no doy que puede ser me imagino que algun tipo de incompatibilidad de las IBX para con el Firebird pero no se, acabo de instalar las Zeos para realizar las pruebas a ver como me va.

Saludos
Responder Con Cita
  #2  
Antiguo 18-12-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Al menos con los MDO me pasaba lo mismo. Así que probablemente sea un problema de los IBX.

La solución fué añadirlos en tiempo de ejecución y olvidarme de ponerlos en tiempo de diseño:
Código Delphi [-]
ibevents.add(const_nombreEvento);
ibevents.add(const_nombreEvento2);
ibevents.Registered := True;

Saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 18-12-2008
Avatar de Kipow
Kipow Kipow is offline
Miembro
 
Registrado: abr 2006
Ubicación: Guatemala
Posts: 329
Poder: 19
Kipow Va por buen camino
Gracias por contestar Lepe, pues si ya he probado esa forma de asignarlos e igual solamente me registra el ultimo y me dispara todos jaja, por el momento he optado por crear ibevents de forma dinamica para cada evento (ya se que es chapuz pero tengo que entregar el proyecto de urgencia) lo raro es que acaban de actualizar el delphi y no se ha corregido este bug (si es que lo fuera).
Responder Con Cita
  #4  
Antiguo 18-12-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Hay algo que no entiendo en tu mensaje.

El ibevents lanza el evento OnEvents para todas las alertas que tenga registradas, en dicho evento tiene el parámetro EventName (hablo de MDO pero en Interbase debe ser igualito) que te indica el evento que se ha disparado realmente.

Supongo que usaras un if EventName = evento1 then... else if EventName = evento2 ... ¿no?

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 18-12-2008
Avatar de Kipow
Kipow Kipow is offline
Miembro
 
Registrado: abr 2006
Ubicación: Guatemala
Posts: 329
Poder: 19
Kipow Va por buen camino
Aclarando, yo registro 3 eventos distintos ya sea en runtime o designtime. al parecer solo queda registrado el ultimo y al lanzar ese evento el procedimiento OnEventAlert se dispara 3 veces 1 para cada evento de los que teoricamente registre. no se si me explico. los eventos si los identifico con el parametro "eventname".
Responder Con Cita
  #6  
Antiguo 19-12-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
siendo benévolo.... usas IBX con FB 2.1, en principio no se garantiza la compatibilidad...pero ya digo, siendo benévolo .

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 23-12-2008
Gallosuarez Gallosuarez is offline
Miembro
 
Registrado: feb 2007
Posts: 92
Poder: 18
Gallosuarez Va por buen camino
Smile Eventos y commmit

He estado utilizando los eventos de Firebird, lo que he notado es que los eventos se disparan despues de un commit. Creo que por ahí podría estar la explicación a tu problema. Ejemplo: se tiene un evento que se dispara despues de una inserción y si haces tres inserciones, pues los eventos se registrarán en la aplicación despues de que hayas hecho un commit, es decir, se dispararía tres veces despues de un solo commit. Si lo que quieres es que inmediatamente se dispare el evento despues de la primera inserción (o cualesquiera que se la condición para que se dispare el evento), debes de hacer un commit inmediatamente, me explico?

Bueno, espero que de algo sirva esto. No dejes de contarnos como solucionaste el problema.

Saludos,
Gerardo Suárez
Responder Con Cita
  #8  
Antiguo 30-12-2008
Avatar de Kipow
Kipow Kipow is offline
Miembro
 
Registrado: abr 2006
Ubicación: Guatemala
Posts: 329
Poder: 19
Kipow Va por buen camino
Gracias por la intencion pero si efectivamente es un bug de los ibevents. pues nada que lo solucione a mi manera ibevent * evento.
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
ibEvents santiago14 Firebird e Interbase 1 27-10-2007 04:27:33
Un trigger que dispara un procedimiento que dispara un trigger... sitrico Firebird e Interbase 5 04-06-2007 22:05:13
necesito programar un evento en un combobox,pero no se cual de todos es federiconqn21 Varios 7 06-04-2006 17:42:24
Evento que se dispara al dar foco nuevamente al 1er form RJF Varios 2 07-12-2005 14:17:52
IBEvents en remoto Jack Conexión con bases de datos 0 23-08-2005 13:35:34


La franja horaria es GMT +2. Ahora son las 13:49:47.


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