Funciones Postgresql

Que tengo:
El objetivo es ejecutar un fichero hecho
En Visual Basic desde el postgresql.
Es decir, tengo un trigger que salta cuando
Se añade o actualiza un registro de una tabla.
El código de la función del trigger, tiene
que ejecutar dicho fichero.exe.
Se que tengo que crear una librería (. So o .dll)
Donde este el código que ejecuta el .exe, i crear una función al postgresql con esa librería.
La pregunta es:
¿Cómo se hace todo eso?, crear la librería más o menos lo tengo claro, pero lo de ejecutar el .exe, no se como hacerlo.
Si me puedes ayudar, explícamelo con ejemplos
Estoy haciendo practicas en Linux, pero se aplicara en Windows.
Por eso explícamelo de las dos maneras aunque debería de ser muy similar, ¿no?
PD: si hay algo que no te ha quedado claro (seguramente, pues me explico como una patata), dímelo.

1 respuesta

Respuesta
1
Que tal veo que lo tuyo es un poco ahuyentador. Jaja. Buscale otra salida hermanito.
El tema es que la concepción de un trigger ha sido orientada hacia otra cosa. En su forma estándar y por razones de portabilidad un trigger debería ser usado simplemente para generar sentencias DDL o DML es decir para definir estructuras nuevas, para consultar o actualizar datos, para resolver consultas con cálculos pesados. Pero siempre dentro de la misma base de datos.
Es complicado el tema de que un trigger ejecute una aplicación .exe (no imposible) por el hecho de que estarías permitiendo que un usuario de base de datos te este accediendo al sistema de archivos. Lo cual no es conveniente para la seguridad.
Yo he visto ejemplos de aplicaciones que mandan un mail al insertarse una fila en una base de datos pero en sql server programadas con T-SQL.
Al instalar postgres normalmente ciertas operaciones son deshabilitadas para conservar la seguridad. En general las operaciones que están restringidas son aquellas que interactúan con el entorno. Esto incluye operaciones que manejan archivos.
Yo te recomendaría controlar
Todo lo necesario desde tu aplicación que inserta la fila en la base y ejecutar el modulo desde la misma sin necesidad de disparar el exe desde el trigger.
Si quieres investigar más acerca de este tema particular con postgres ingresa a las dir :
http://www.postgresql.org/idocs/index.php?plperl.html
http://www.postgresql.org/idocs/index.php?pltcl.html
Disculpa si no te pude solucionar tu problema y también te pido disculpa si no te convence mi sugerencia. Solo te pido que valores mi esfuerzo.
Éxitos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas