Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Pasar Parametros Trigger

Estas en el tema de Pasar Parametros Trigger en el foro de PostgreSQL en Foros del Web. Saludos. Es posible pasarle parametros a un trigger? Requiero agregar a cada registro que se inserte una variable de sesion de PHP, con fines de ...
  #1 (permalink)  
Antiguo 13/01/2011, 10:05
 
Fecha de Ingreso: julio-2009
Mensajes: 15
Antigüedad: 14 años, 9 meses
Puntos: 1
Mensaje Pasar Parametros Trigger

Saludos.

Es posible pasarle parametros a un trigger? Requiero agregar a cada registro que se inserte una variable de sesion de PHP, con fines de Control de Acceso.

Agradezco inmensamente su ayuda o si existe otro metodo para hacerlo.
  #2 (permalink)  
Antiguo 13/01/2011, 10:26
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Pasar Parametros Trigger

Lastimosamente no se puede. Y es mas por el concepto de los triggers que por el motor. En ninguna base de datos es posible. (creo)
Lo que puedes hacer es agregar un campo a la tabla... poner el valor de php en el campo y desde el trigger operarlo con las variables OLD y NEW.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 13/01/2011, 15:41
 
Fecha de Ingreso: julio-2009
Mensajes: 15
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Pasar Parametros Trigger

Gracias por la respuesta. Tengo una pregunta: Es posible crear en PostgreSQL una especie de "Variable Global" de tal manera que cualquier consulta pueda acceder a ese valor?
  #4 (permalink)  
Antiguo 13/01/2011, 16:01
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Pasar Parametros Trigger

porque no describes bien que es lo que necesitas?
Con un panorama se puede pensar en una solución.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 14/01/2011, 06:29
 
Fecha de Ingreso: julio-2009
Mensajes: 15
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Pasar Parametros Trigger

Gracias por las respuestas. El problema es el siguiente:

Una persona se autentica mediante LDAP usando PHP.
LDAP contiene informacion representativa de la persona.
Cuando esa persona cree un registro, requiero agregar (mediante un trigger u otro metodo) parte de esa informacion de LDAP (almacenada en variables de sesion de PHP) al registro recien creado.

De la misma forma, cuando una persona edite un registro, que quede guardado en ese registro parte de la informacion de Autenticacion proporcionada por LDAP.
Ya que no es posible "pasar" un parametro al trigger, no encuentro una manera en la que PostgreSQL reciba esa informacion.
  #6 (permalink)  
Antiguo 14/01/2011, 07:35
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Pasar Parametros Trigger

se me ocurre que tengas una tabla por ejemplo "logueos" que almacene esta información de la que hablas. Mientras esté en la base de datos, desde el interior del trigger si puedes acceder a los campos de cualquier tabla.

al interior del trigger puedes acceder así:

Código SQL:
Ver original
  1. DECLARE
  2. variable_php INTEGER;
  3. BEGIN
  4. SELECT campo_con_variable INTO variable_php FROM logueos WHERE id_usuario=NEW.id_usuario;

sería algo así.... no se si la sintaxis esté bien ya que no tengo como probar en este momento.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 19/01/2011, 08:09
 
Fecha de Ingreso: julio-2009
Mensajes: 15
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Pasar Parametros Trigger

Gracias por la ayuda.

Tambien logre solucionar el problema creando un Usuario temporal (Mediante la instruccion CREATE ROLE NOLOGIN - SET SESSION AUTHORIZATION) en la base de datos, y al terminar la sesion, dicho usuario será eliminado (Mediante SET SESSION AUTHORIZATION DEFAULT - DROP ROLE).

Etiquetas: parametros, pasar, trigger
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:21.