FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Notificación de Cambios
Hola a todos:
Trabajo con D5, FibPlus y Firebird 2 He diseñado un pequeño programa para familiarizarme con firebird y lo que quiero conseguir es lo siguiente: Ejemplo: El PC1 edita para cambiar el registro 4 del fichero de Articulos. Mientras lo cambia y no lo cambia, el PC 2 edita tambien el registro 4 del mismo fichero de Articulos y le da a grabar antes que el PC1. Evidentemente el PC1 no se entera de los cambios que ha hecho el PC2 y cree que los suyos son los correctos. Tengo definido un EventAlerter (del FibPlus) que salta y comunica al PC1 y al PC2 que ha habido cambios, pero lo que yo quiero es que si el PC1 hace el cambio, que no se lo autocomunique, que solo lo comunique al PC2 y a todos los de la red menos a él mismo. He hablado con otros usuarios de otros motores y me dicen "eso lo hace sola la base de datos".... pero será porque por defecto hay parametros establecidos que lo establecen (digo yo). Podríais echarme una mano con esto de las comunicaciones a los PC's de la red??? Muchas gracias a todos por intentar ayudarme. Marcial |
#2
|
||||
|
||||
El tema es que si se produce un cambio, no se puede saber si lo ha originado la propia base de datos (un trigger por ejemplo) o ha sido el programa que tú has diseñado. De hecho, puedes ejecutar un sql que produzca 10 EventAlert, pero no se mandan todos a los clientes, se envía un solo evento con un parámetro que indica la cantidad de veces que se ha producido.
Puedes hacer un invento, pero se te va a complicar un poco. Por ejemplo, usas una tabla donde guardas el usuario que ha realizado la modificación; cuando recibas el evento en tu aplicación, consultas esa tabla y si el usuario es el mismo que ha realizado el guardado, no presentas el mensaje de advertencia. Ignoro si hay una solución mejor.
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#3
|
||||
|
||||
Al momento de regresar disparar el evento en la base puedes hacerlo incluyendo el nombre del usuario que esta generando el mismo algo asi;
luego en tu aplicacion solo debes de revisar eso pues si el evento es el indicado y no dispararlo si el usuario es diferente al logueado actualmente. espero haberme dado a entender. |
#4
|
|||
|
|||
Gracias a los dos por responder.
Lepe, estaba siguiendo tu consejo de fabricarme una tabla y he visto la respuesta de Kipov. Kipov, como haces para preguntar por el usuario??. He cambiado el POST_EVENT como me has dicho y en Delphi en el OnEventAlert pongo
pero no funciona. ¿Podrías ampliarme un poco más esto? Gracias de antemano a todos por responder Marcial |
#5
|
||||
|
||||
Cita:
es precisamente como dice Lepe, debes de registrar en los eventos "NOMBRE_TABLAXNOMBRE_USUARIO', (simplemente recorrer todos los usuarios de la bd no uso los fb pero me imagino que algo han de traer para poder hacerlo). luego solo quitas de la cadena del eventname NOMBRE_TABLAX y listo tienes el nombre del usuario. |
#6
|
|||
|
|||
Gracias a todos los que respondeis y a los que lo intentais y no lo haceis.
El problema lo estoy solucionando como dijo Lepe, con una tabla auxiliar, ya que por desgracia mi nivel de firebird no me permite soltura suficiente como para lo que me decis del evento Nombre_de_Tabla_User y luego quitar el User del nombre.... Pero todo se andará (con vuestra ayuda). Marcial |
#7
|
||||
|
||||
Eso precisamente era lo que yo quería evitar. Tener en el mensaje el nombre del usuario.
Según hice una prueba (fb 1.5 creo recordar) no me permitía usar post_event con esa sintaxis. quizás usando execute statement pudiera ser, no lo sé.
Además tenemos el inconveniente que al registrar el mensaje en los TEvenAlert, ya debemos tener en cuenta el usuario y que no varíe en ninguna letra. marcial el mensaje que debes registrar es:
y ya digo, no sé si funcionará. Lo de la tabla auxiliar, siempre debería funcionar. SAludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
notificacion de correo nuevo... | julidelp | Internet | 3 | 12-12-2006 05:18:20 |
notificacion por E-mail | pharaonhx | Internet | 6 | 20-12-2004 22:57:13 |
Notificacion del debugger | isc_hilda | Varios | 0 | 13-05-2004 21:28:35 |
Ventanas de notificacion | Rudi | Varios | 8 | 27-10-2003 18:17:20 |
|