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

Problemas al ejecutar una funsion en Postgres

Estas en el tema de Problemas al ejecutar una funsion en Postgres en el foro de PostgreSQL en Foros del Web. Hola a todos, me sucede lo siguiente: Tengo una funsion para insertar un nuevo usuario en la DB, resulta que cuando ejecuto la funcion desde ...
  #1 (permalink)  
Antiguo 06/10/2010, 06:25
 
Fecha de Ingreso: junio-2010
Mensajes: 59
Antigüedad: 13 años, 10 meses
Puntos: 1
Problemas al ejecutar una funsion en Postgres

Hola a todos,
me sucede lo siguiente:
Tengo una funsion para insertar un nuevo usuario en la DB, resulta que cuando ejecuto la funcion desde mi administrador de Postgres (EMS Manager) tengo obligatoriamente que clikear la opcion de la funsion COMMIT TRANSACTION de lo contrario no hace nada.

Por otra parte cuando invoco la funcion desde el codigo de mi aplicacion no hace nada a menos que clikee la opcion de la tabla COMMIT TRANSACTION. Eso me esta volviendo loco porque nunca me habia sucedido y creo que debe cuestion de nada grave.

Sin embargo cuando inserto un registro desde el codigo con un INSERT lo hace pefectamente.

Ayudenme por fa...
  #2 (permalink)  
Antiguo 06/10/2010, 07:23
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: Problemas al ejecutar una funsion en Postgres

Esto no debe pasar. una función es una transacción que se confirma automaticamente o se deshace si hay fallos en medio de los procesos internos de la misma.

Postea el codigo de tu función y miramos que puede estar pasando
.
saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 06/10/2010, 07:30
 
Fecha de Ingreso: junio-2010
Mensajes: 59
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Problemas al ejecutar una funsion en Postgres

Aqui está el codigo de mi funsion:

CREATE OR REPLACE FUNCTION "public"."nuevo_usuario" (
numeric,
varchar,
varchar,
varchar,
varchar,
integer,
integer,
varchar
)
RETURNS boolean AS
$body$
/* New function body */
DECLARE
user_chapa ALIAS FOR $1;
user_usuario ALIAS FOR $2;
user_contrasena ALIAS FOR $3;
user_nombre ALIAS FOR $4;
user_apellidos ALIAS FOR $5;
user_departamento ALIAS FOR $6;
user_cargo ALIAS FOR $7;
user_estado ALIAS FOR $8;

BEGIN
INSERT INTO usuarios(chapa,usuario,contrasena,nombre,apellidos ,id_departamento,id_cargo,estado) VALUES(user_chapa,user_usuario,user_contrasena,use r_nombre,user_apellidos,user_departamento,user_car go,user_estado);
RETURN TRUE;
END;
$body$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST 100;
  #4 (permalink)  
Antiguo 06/10/2010, 07:52
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: Problemas al ejecutar una funsion en Postgres

Todo parece bien.

Lo unico que me da un poco de desconfianza es el EMS. (Y eso por que no lo he utilizado )

Haz una prueba.

Copia tu función y ejecutala desde linea de comandos.
Correla desde linea de comandos y desde la aplicación y dinos si siguen los mismos sintomas.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: ejecutar
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 21:07.