Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   ejecutar una aplicación desde un trigger (https://www.clubdelphi.com/foros/showthread.php?t=79613)

_cero_ 22-07-2012 20:09:21

ejecutar una aplicación desde un trigger
 
Hola como están todos, bueno esta vez me preguntaba si es posible mediante un trigger ejecutar una aplicación x.


Verán estoy tratando de actualizar una base de Acces con los datos de un sistema que yo hice ya hace un tiempo (el sistema trabaja con firebird, y el cliente pidió esta actualización de la base de un tercero), y se me hace algo chapusa tocar el código del sistema, así que pensé que sería condenadamente fácil si pudiera ejecutar una aplicación desde un trigger de actualización asi cada ves que se actualiza la tabla que quiero “copiar” el programa se encargara de ello, es posible? Hay una mejor forma de hacer esto?


De antemano gracias por su ayuda.

Casimiro Notevi 22-07-2012 21:52:32

Los triggers funcionan cuando ocurre un evento del tipo insert, update o delete en la BD, y puedes hacer procesos que afecten a campos, tablas, etc. pero no creo que tengan la posibilidad de ejecutar un programa externo, y si acaso la tienen... no debería.
Tendrás que modificar tu aplicación.

_cero_ 22-07-2012 23:06:20

mmm que malo:(, tenía la esperanza de que tuviera algún comando como el exec (de oracle me parece), pero entonces no hay otra forma? Se puede saber cuándo se edita una tabla? Hay algún log de eventos accesible en firebird? Digo para monitorear la tabla y efectuar los cambios en la de acces. Bueno en su defecto creo que esperare y buscare un poco más:confused:, sino si tendré que hacerme a la idea de editar la aplicación:mad:.

Casimiro Notevi 22-07-2012 23:27:50

Es que desde firebird no te puedes conectar a access, como es lógico.

Y me extraña lo que dices, no digo que no sea cierto, pero sí que me extraña, de que oracle ejecute un programa externo desde un trigger.

_cero_ 22-07-2012 23:44:16

No, desde firebird no pretendo conectarme a acces, lo que pretendo es programar una aplicación o servicio que este permanentemente conectada a la base de firebird y cuando esta aplicación reciba un mensaje o lea algo de un log (que se yo), inserte, elimine o actualice el registro en la otra base de acces.


En cuanto a lo de Oracle si, me PARECE que incluso SQL server tiene un comando parecido, lo cual me serviría en esta situación, ya que al actualizar una tabla (ose al insertar, eliminar o actualizar un registro), me ejecutaría una aplicación que me copiara esa acción en la base de acces.


Por eso mi pregunta, hay alguna forma de acceder a eventos o log’s de firebird desde una aplicación? Esto con el fin de monitorear una tabla.

Casimiro Notevi 23-07-2012 00:10:27

Eso sí, puedes usar post_event, que te envía un "mensaje" en los eventos que tú quieras: insertar, borrar, actualizar... y ya tú haces lo que precises en tu programa.
Haz una búsqueda por post_event para ver otros hilos donde se ha tratado el tema.


Y lo de ejecutar un programa externo desde un trigger en oracle... me parece una barbaridad, casi diría que es una chapuza añadida porque alguien lo quería y lo pagó para que lo pusieran.

_cero_ 23-07-2012 01:02:54

Me viene de perlas, gracias por la orientación ya encontré un documento algo grande sobre esto, ps nada a leer y a aprender.

pd. de nuevo gracias por la orientación.

Casimiro Notevi 23-07-2012 01:51:40

Aquí tienes un documento pdf muy bien explicado :)


La franja horaria es GMT +2. Ahora son las 16:58:17.

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