Lists: | vepug |
---|
From: | rootweiller <rootweiller83(at)gmail(dot)com> |
---|---|
To: | vepug(at)postgresql(dot)org |
Subject: | Problemas con SCHEMAS postgresql 8.4 |
Date: | 2012-03-05 13:47:27 |
Message-ID: | CA+=-Zvfbs-stL5fTdjp9pA1uTF_y+kzcehSR7ZFZbRJtdFtdBQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | vepug |
Saludos, me encuentro trabajando con una BD desarrollada con postgresql 8.4
la misma tiene 5 schemas dentro de los cuales están las tablas y funciones
necesarias para su funcionamiento (hasta ahí todo bien), el problema surge
cuando se intenta desde afuera hacer un llamado a las funciones, las mismas
no responden a pesar de que el sql impreso si funciona cuando se ejecuta
desde el pgadmin3
ejemplo:
SELECT fn_insert_cable(coaxial, '2'); si ejecuto esto desde cualquier
lenguaje de programación no pasa nada (estamos usando PHP5), pero si lo
ejecuto desde pgadmin3 lo agrega sin problemas. Probamos la conexión con BD
y está correcta, el usuario que usamos para conectarnos tiene los permisos
necesarios y es el owner de la BD sobre la cual estamos trabajando.
Un ejemplo de una de las funciones:
CREATE FUNCTION fn_insert_aleacion(v_codaleacion integer, v_aleacion
character, v_caraleacion character) RETURNS integer
LANGUAGE plpgsql
AS $$
DECLARE
BEGIN
INSERT INTO cab_fundicion.t_aleacion(e_codaleacion, c_aleacion,
c_caracteristicas) VALUES (v_codaleacion, v_aleacion, v_caraleacion);
return 1;
EXCEPTION
WHEN unique_violation THEN RAISE NOTICE 'Duplicidad de Codigo';
return 0;
WHEN others THEN
RAISE NOTICE 'Error Insertando el Registro';
return 0;
END;
$$;
Gracias de antemano, espero su ayuda...
--
Juan Vargas
(58) 414-9926363
http://www.bolivarlug.org.ve
http://zerobytes.com.ve <http://blog.rootweiller.com.ve>
Linux User 461138
From: | Santiago Zarate <santiago(at)zarate(dot)net(dot)ve> |
---|---|
To: | rootweiller <rootweiller83(at)gmail(dot)com> |
Cc: | vepug(at)postgresql(dot)org |
Subject: | Re: Problemas con SCHEMAS postgresql 8.4 |
Date: | 2012-03-05 14:18:27 |
Message-ID: | CAD_eom8EuQ9OUFyf-9Ruh064K2-otNnccCaJhT7RWz-WGf9HSA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | vepug |
Juan, en teoria (Y en la practica), deberias agregar el esquema en el
que se encuentra tu funcion, a la ruta de busqueda de tu cliente
(pgadmin _creo_ que las agrega automaticamente apartir de cierta
version). Si revisas los mensajes de error que deberia estar
arrojandote el lenguaje, deberias poder ver que te dice que la funcion
"tal" no esta definida.... puedes hacer dos cosas:
select schema.funcion(parametros)
o, antes de llamar a tu funcion, (de hecho, mejor aun al inicializar
tu conexion):
SET search_path TO tuschema, otroschema, public; -- recuerda que
public es "el general" asi que no te recomiendo quitarlo de esa linea
Saludos
2012/3/5 rootweiller <rootweiller83(at)gmail(dot)com>:
> Saludos, me encuentro trabajando con una BD desarrollada con postgresql 8.4
> la misma tiene 5 schemas dentro de los cuales están las tablas y funciones
> necesarias para su funcionamiento (hasta ahí todo bien), el problema surge
> cuando se intenta desde afuera hacer un llamado a las funciones, las mismas
> no responden a pesar de que el sql impreso si funciona cuando se ejecuta
> desde el pgadmin3
>
> ejemplo:
>
> SELECT fn_insert_cable(coaxial, '2'); si ejecuto esto desde cualquier
> lenguaje de programación no pasa nada (estamos usando PHP5), pero si lo
> ejecuto desde pgadmin3 lo agrega sin problemas. Probamos la conexión con BD
> y está correcta, el usuario que usamos para conectarnos tiene los permisos
> necesarios y es el owner de la BD sobre la cual estamos trabajando.
>
> Un ejemplo de una de las funciones:
>
> CREATE FUNCTION fn_insert_aleacion(v_codaleacion integer, v_aleacion
> character, v_caraleacion character) RETURNS integer
> LANGUAGE plpgsql
> AS $$
> DECLARE
>
> BEGIN
> INSERT INTO cab_fundicion.t_aleacion(e_codaleacion, c_aleacion,
> c_caracteristicas) VALUES (v_codaleacion, v_aleacion, v_caraleacion);
> return 1;
>
> EXCEPTION
>
> WHEN unique_violation THEN RAISE NOTICE 'Duplicidad de Codigo';
> return 0;
> WHEN others THEN
> RAISE NOTICE 'Error Insertando el Registro';
> return 0;
> END;
> $$;
>
>
> Gracias de antemano, espero su ayuda...
>
> --
> Juan Vargas
> (58) 414-9926363
> http://www.bolivarlug.org.ve
> http://zerobytes.com.ve
> Linux User 461138
>
>
--
Santiago Zarate
+(507) 64271684
santiago(at)zarate(dot)net(dot)ve
"La mejor forma de hacer que un adolecente lea un libro es vetandolo.
Cuando alguien que ostenta una figura de autoridad dice, 'Danos tu
libro', creo que esos estudiantes piensan 'Debe haber algo poderoso en
esas palabras'." - Erin Gruwell
"The best way to get a teenager to read a book is to ban it. When
someone who is a daunting authority figure says, 'Give us your book',
I think these students [thought], 'There must be something powerful in
these words'. " - Erin Gruwell
From: | rootweiller <rootweiller83(at)gmail(dot)com> |
---|---|
To: | Santiago Zarate <santiago(at)zarate(dot)net(dot)ve> |
Cc: | vepug(at)postgresql(dot)org |
Subject: | Re: Problemas con SCHEMAS postgresql 8.4 |
Date: | 2012-03-05 15:17:04 |
Message-ID: | CA+=-ZvemSitThjWGjzM4bEcHT7oKu97X=sZTJHnGqxw3WVODJA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | vepug |
Así es, lo agrego schema.funcion(parametros) le coloco un $sql para
imprimir lo que es enviado y correctamente SELECT schema.funcion(985,
'Hola', 'Hola'), no me genera ningún error he revisado los logs y nada :(
Ejecute el SET search_path a ver si era eso y aún, nada :(
El 5 de marzo de 2012 09:48, Santiago Zarate <santiago(at)zarate(dot)net(dot)ve>escribió:
> Juan, en teoria (Y en la practica), deberias agregar el esquema en el
> que se encuentra tu funcion, a la ruta de busqueda de tu cliente
> (pgadmin _creo_ que las agrega automaticamente apartir de cierta
> version). Si revisas los mensajes de error que deberia estar
> arrojandote el lenguaje, deberias poder ver que te dice que la funcion
> "tal" no esta definida.... puedes hacer dos cosas:
>
> select schema.funcion(parametros)
>
> o, antes de llamar a tu funcion, (de hecho, mejor aun al inicializar
> tu conexion):
>
> SET search_path TO tuschema, otroschema, public; -- recuerda que
> public es "el general" asi que no te recomiendo quitarlo de esa linea
>
> Saludos
>
> 2012/3/5 rootweiller <rootweiller83(at)gmail(dot)com>:
> > Saludos, me encuentro trabajando con una BD desarrollada con postgresql
> 8.4
> > la misma tiene 5 schemas dentro de los cuales están las tablas y
> funciones
> > necesarias para su funcionamiento (hasta ahí todo bien), el problema
> surge
> > cuando se intenta desde afuera hacer un llamado a las funciones, las
> mismas
> > no responden a pesar de que el sql impreso si funciona cuando se ejecuta
> > desde el pgadmin3
> >
> > ejemplo:
> >
> > SELECT fn_insert_cable(coaxial, '2'); si ejecuto esto desde cualquier
> > lenguaje de programación no pasa nada (estamos usando PHP5), pero si lo
> > ejecuto desde pgadmin3 lo agrega sin problemas. Probamos la conexión con
> BD
> > y está correcta, el usuario que usamos para conectarnos tiene los
> permisos
> > necesarios y es el owner de la BD sobre la cual estamos trabajando.
> >
> > Un ejemplo de una de las funciones:
> >
> > CREATE FUNCTION fn_insert_aleacion(v_codaleacion integer, v_aleacion
> > character, v_caraleacion character) RETURNS integer
> > LANGUAGE plpgsql
> > AS $$
> > DECLARE
> >
> > BEGIN
> > INSERT INTO cab_fundicion.t_aleacion(e_codaleacion, c_aleacion,
> > c_caracteristicas) VALUES (v_codaleacion, v_aleacion, v_caraleacion);
> > return 1;
> >
> > EXCEPTION
> >
> > WHEN unique_violation THEN RAISE NOTICE 'Duplicidad de Codigo';
> > return 0;
> > WHEN others THEN
> > RAISE NOTICE 'Error Insertando el Registro';
> > return 0;
> > END;
> > $$;
> >
> >
> > Gracias de antemano, espero su ayuda...
> >
> > --
> > Juan Vargas
> > (58) 414-9926363
> > http://www.bolivarlug.org.ve
> > http://zerobytes.com.ve
> > Linux User 461138
> >
> >
>
>
>
> --
> Santiago Zarate
> +(507) 64271684
> santiago(at)zarate(dot)net(dot)ve
>
> "La mejor forma de hacer que un adolecente lea un libro es vetandolo.
> Cuando alguien que ostenta una figura de autoridad dice, 'Danos tu
> libro', creo que esos estudiantes piensan 'Debe haber algo poderoso en
> esas palabras'." - Erin Gruwell
>
> "The best way to get a teenager to read a book is to ban it. When
> someone who is a daunting authority figure says, 'Give us your book',
> I think these students [thought], 'There must be something powerful in
> these words'. " - Erin Gruwell
>
--
Juan Vargas
(58) 414-9926363
http://www.bolivarlug.org.ve
http://zerobytes.com.ve <http://blog.rootweiller.com.ve>
Linux User 461138
From: | Ramon Bastidas <ramon(dot)bastidas(at)open-world(dot)com(dot)ve> |
---|---|
To: | rootweiller <rootweiller83(at)gmail(dot)com> |
Cc: | Santiago Zarate <santiago(at)zarate(dot)net(dot)ve>, vepug(at)postgresql(dot)org |
Subject: | Re: Problemas con SCHEMAS postgresql 8.4 |
Date: | 2012-03-05 15:28:06 |
Message-ID: | 1330961286.2469.8.camel@san-juan.pzo.open-world.com.ve |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | vepug |
Juan, a lo mejor tienes los logs con poco nivel de detalle... en todo
caso verifica los permisos para el usuario en la funcion y el esquema
donde se encuentra la funcion, aunque si es el mismo usuario que usas en
pgadmin los permisos deben estar bien.
saludos
El lun, 05-03-2012 a las 10:47 -0430, rootweiller escribió:
> Así es, lo agrego schema.funcion(parametros) le coloco un $sql para
> imprimir lo que es enviado y correctamente SELECT schema.funcion(985,
> 'Hola', 'Hola'), no me genera ningún error he revisado los logs y
> nada :(
>
> Ejecute el SET search_path a ver si era eso y aún, nada :(
>
>
> El 5 de marzo de 2012 09:48, Santiago Zarate <santiago(at)zarate(dot)net(dot)ve>
> escribió:
>
> Juan, en teoria (Y en la practica), deberias agregar el
> esquema en el
> que se encuentra tu funcion, a la ruta de busqueda de tu
> cliente
> (pgadmin _creo_ que las agrega automaticamente apartir de
> cierta
> version). Si revisas los mensajes de error que deberia estar
> arrojandote el lenguaje, deberias poder ver que te dice que la
> funcion
> "tal" no esta definida.... puedes hacer dos cosas:
>
> select schema.funcion(parametros)
>
> o, antes de llamar a tu funcion, (de hecho, mejor aun al
> inicializar
> tu conexion):
>
> SET search_path TO tuschema, otroschema, public; -- recuerda
> que
> public es "el general" asi que no te recomiendo quitarlo de
> esa linea
>
> Saludos
>
> 2012/3/5 rootweiller <rootweiller83(at)gmail(dot)com>:
>
> > Saludos, me encuentro trabajando con una BD desarrollada con
> postgresql 8.4
> > la misma tiene 5 schemas dentro de los cuales están las
> tablas y funciones
> > necesarias para su funcionamiento (hasta ahí todo bien), el
> problema surge
> > cuando se intenta desde afuera hacer un llamado a las
> funciones, las mismas
> > no responden a pesar de que el sql impreso si funciona
> cuando se ejecuta
> > desde el pgadmin3
> >
> > ejemplo:
> >
> > SELECT fn_insert_cable(coaxial, '2'); si ejecuto esto desde
> cualquier
> > lenguaje de programación no pasa nada (estamos usando PHP5),
> pero si lo
> > ejecuto desde pgadmin3 lo agrega sin problemas. Probamos la
> conexión con BD
> > y está correcta, el usuario que usamos para conectarnos
> tiene los permisos
> > necesarios y es el owner de la BD sobre la cual estamos
> trabajando.
> >
> > Un ejemplo de una de las funciones:
> >
> > CREATE FUNCTION fn_insert_aleacion(v_codaleacion integer,
> v_aleacion
> > character, v_caraleacion character) RETURNS integer
> > LANGUAGE plpgsql
> > AS $$
> > DECLARE
> >
> > BEGIN
> > INSERT INTO cab_fundicion.t_aleacion(e_codaleacion,
> c_aleacion,
> > c_caracteristicas) VALUES (v_codaleacion, v_aleacion,
> v_caraleacion);
> > return 1;
> >
> > EXCEPTION
> >
> > WHEN unique_violation THEN RAISE NOTICE 'Duplicidad de
> Codigo';
> > return 0;
> > WHEN others THEN
> > RAISE NOTICE 'Error Insertando el Registro';
> > return 0;
> > END;
> > $$;
> >
> >
> > Gracias de antemano, espero su ayuda...
> >
> > --
> > Juan Vargas
> > (58) 414-9926363
> > http://www.bolivarlug.org.ve
> > http://zerobytes.com.ve
> > Linux User 461138
> >
> >
>
>
>
>
>
> --
> Santiago Zarate
> +(507) 64271684
> santiago(at)zarate(dot)net(dot)ve
>
> "La mejor forma de hacer que un adolecente lea un libro es
> vetandolo.
> Cuando alguien que ostenta una figura de autoridad dice,
> 'Danos tu
> libro', creo que esos estudiantes piensan 'Debe haber algo
> poderoso en
> esas palabras'." - Erin Gruwell
>
> "The best way to get a teenager to read a book is to ban it.
> When
> someone who is a daunting authority figure says, 'Give us your
> book',
> I think these students [thought], 'There must be something
> powerful in
> these words'. " - Erin Gruwell
>
>
>
>
> --
> Juan Vargas
> (58) 414-9926363
> http://www.bolivarlug.org.ve
> http://zerobytes.com.ve
> Linux User 461138
>
>
Apaga todo Artefacto Eléctrico antes
de SALIR
Lo invitamos a disfrutar de nuestro servicio de Call Center, a través
del Tlf. 0800-OPEN-000
Conoce Usted nuestro programa de Recompensas Open Pass?
http://www.openworldconsult.com.ve/enter.html
Ramón Bastidas
Coordinador de Adiestramiento
Open World Consultores, C.A. -Venezuela-
E-mail: ramon(dot)bastidas(at)open-world(dot)com(dot)ve URL:
http://www.openworldconsult.com.ve
Puerto Ordaz 58 286 9515973 Caracas 58 212 9594777
Maracaibo 58 261 7983369 Mérida 0800 OPEN-000
Movil 58 412 8393899
From: | rootweiller <rootweiller83(at)gmail(dot)com> |
---|---|
To: | ramon(dot)bastidas(at)open-world(dot)com(dot)ve |
Cc: | Santiago Zarate <santiago(at)zarate(dot)net(dot)ve>, vepug(at)postgresql(dot)org |
Subject: | Re: Problemas con SCHEMAS postgresql 8.4 |
Date: | 2012-03-05 15:38:01 |
Message-ID: | CA+=-ZveJ6j-7MYsycvxcLgUvaHfNU=rCYWFW+_F1VL7YA_tZfQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | vepug |
Así están los permisos en los schemas
CREATE SCHEMA myschema
AUTHORIZATION "admin";
GRANT ALL ON SCHEMA myschema TO "admin";
COMMENT ON SCHEMA myschema IS 'SCHEMA for myschema';
El usuario "admin" tiene todos los permisos en todas las BD del sistema. Lo
del poco nivel de detalle lo he cambiado según algunas guías leídas por la
web.
De verdad no entiendo el problema... me ando "rompiendo el coco" con esto.
El 5 de marzo de 2012 10:58, Ramon Bastidas <
ramon(dot)bastidas(at)open-world(dot)com(dot)ve> escribió:
> **
> Juan, a lo mejor tienes los logs con poco nivel de detalle... en todo caso
> verifica los permisos para el usuario en la funcion y el esquema donde se
> encuentra la funcion, aunque si es el mismo usuario que usas en pgadmin los
> permisos deben estar bien.
>
>
> saludos
>
> El lun, 05-03-2012 a las 10:47 -0430, rootweiller escribió:
>
> Así es, lo agrego schema.funcion(parametros) le coloco un $sql para
> imprimir lo que es enviado y correctamente SELECT schema.funcion(985,
> 'Hola', 'Hola'), no me genera ningún error he revisado los logs y nada :(
>
> Ejecute el SET search_path a ver si era eso y aún, nada :(
>
> El 5 de marzo de 2012 09:48, Santiago Zarate <santiago(at)zarate(dot)net(dot)ve>
> escribió:
>
> Juan, en teoria (Y en la practica), deberias agregar el esquema en el
> que se encuentra tu funcion, a la ruta de busqueda de tu cliente
> (pgadmin _creo_ que las agrega automaticamente apartir de cierta
> version). Si revisas los mensajes de error que deberia estar
> arrojandote el lenguaje, deberias poder ver que te dice que la funcion
> "tal" no esta definida.... puedes hacer dos cosas:
>
> select schema.funcion(parametros)
>
> o, antes de llamar a tu funcion, (de hecho, mejor aun al inicializar
> tu conexion):
>
> SET search_path TO tuschema, otroschema, public; -- recuerda que
> public es "el general" asi que no te recomiendo quitarlo de esa linea
>
> Saludos
>
> 2012/3/5 rootweiller <rootweiller83(at)gmail(dot)com>:
>
> > Saludos, me encuentro trabajando con una BD desarrollada con
> postgresql 8.4
> > la misma tiene 5 schemas dentro de los cuales están las tablas y
> funciones
> > necesarias para su funcionamiento (hasta ahí todo bien), el problema
> surge
> > cuando se intenta desde afuera hacer un llamado a las funciones, las
> mismas
> > no responden a pesar de que el sql impreso si funciona cuando se ejecuta
> > desde el pgadmin3
> >
> > ejemplo:
> >
> > SELECT fn_insert_cable(coaxial, '2'); si ejecuto esto desde cualquier
> > lenguaje de programación no pasa nada (estamos usando PHP5), pero si lo
> > ejecuto desde pgadmin3 lo agrega sin problemas. Probamos la conexión con
> BD
> > y está correcta, el usuario que usamos para conectarnos tiene los
> permisos
> > necesarios y es el owner de la BD sobre la cual estamos trabajando.
> >
> > Un ejemplo de una de las funciones:
> >
> > CREATE FUNCTION fn_insert_aleacion(v_codaleacion integer, v_aleacion
> > character, v_caraleacion character) RETURNS integer
> > LANGUAGE plpgsql
> > AS $$
> > DECLARE
> >
> > BEGIN
> > INSERT INTO cab_fundicion.t_aleacion(e_codaleacion, c_aleacion,
> > c_caracteristicas) VALUES (v_codaleacion, v_aleacion, v_caraleacion);
> > return 1;
> >
> > EXCEPTION
> >
> > WHEN unique_violation THEN RAISE NOTICE 'Duplicidad de Codigo';
> > return 0;
> > WHEN others THEN
> > RAISE NOTICE 'Error Insertando el Registro';
> > return 0;
> > END;
> > $$;
> >
> >
> > Gracias de antemano, espero su ayuda...
> >
> > --
> > Juan Vargas
> > (58) 414-9926363
> > http://www.bolivarlug.org.ve
> > http://zerobytes.com.ve
> > Linux User 461138
> >
> >
>
>
>
>
> --
> Santiago Zarate
> +(507) 64271684
> santiago(at)zarate(dot)net(dot)ve
>
> "La mejor forma de hacer que un adolecente lea un libro es vetandolo.
> Cuando alguien que ostenta una figura de autoridad dice, 'Danos tu
> libro', creo que esos estudiantes piensan 'Debe haber algo poderoso en
> esas palabras'." - Erin Gruwell
>
> "The best way to get a teenager to read a book is to ban it. When
> someone who is a daunting authority figure says, 'Give us your book',
> I think these students [thought], 'There must be something powerful in
> these words'. " - Erin Gruwell
>
>
>
>
> --
> Juan Vargas
> (58) 414-9926363
> http://www.bolivarlug.org.ve
> http://zerobytes.com.ve <http://blog.rootweiller.com.ve>
> Linux User 461138
>
>
>
>
> Apaga todo Artefacto Eléctrico antes de SALIR
>
> *Lo invitamos a disfrutar de nuestro servicio de Call Center, a través
> del Tlf. 0800-OPEN-000*
>
> Conoce Usted nuestro programa de Recompensas Open Pass?
> http://www.openworldconsult.com.ve/enter.html<http://www.openworldconsult.com.ve/enter.htm>
>
> *Ramón Bastidas*
> Coordinador de Adiestramiento
> Open World Consultores, C.A. -Venezuela-
> E-mail: ramon(dot)bastidas(at)open-world(dot)com(dot)ve URL:
> http://www.openworldconsult.com.ve
>
>
> Puerto Ordaz 58 286 9515973 Caracas 58 212 9594777
> Maracaibo 58 261 7983369 Mérida 0800 OPEN-000
> Movil 58 412 8393899
>
--
Juan Vargas
(58) 414-9926363
http://www.bolivarlug.org.ve
http://zerobytes.com.ve <http://blog.rootweiller.com.ve>
Linux User 461138
From: | Lennin Caro <lennin(dot)caro(at)yahoo(dot)com> |
---|---|
To: | rootweiller <rootweiller83(at)gmail(dot)com>, ramon(dot)bastidas(at)open-world(dot)com(dot)ve |
Cc: | Santiago Zarate <santiago(at)zarate(dot)net(dot)ve>, vepug(at)postgresql(dot)org |
Subject: | Re: Problemas con SCHEMAS postgresql 8.4 |
Date: | 2012-03-05 16:22:09 |
Message-ID: | 1330964529.84231.YahooMailClassic@web162202.mail.bf1.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | vepug |
El usuario con el que realizas la conexion desde el php es el mismo dueño del procedimiento?
Cuando dices que no arroja nada el $sql verificaste si inserto el registro en la tabla?
Ing. Lennin Caro Pérez
Usuario:GNU/LINUX
PHP Developer
PostgreSQL DBA
Oracle DBA
Linux counter id 474393
--- On Mon, 3/5/12, Ramon Bastidas <ramon(dot)bastidas(at)open-world(dot)com(dot)ve> wrote:
From: Ramon Bastidas <ramon(dot)bastidas(at)open-world(dot)com(dot)ve>
Subject: Re: [vepug] Problemas con SCHEMAS postgresql 8.4
To: "rootweiller" <rootweiller83(at)gmail(dot)com>
Cc: "Santiago Zarate" <santiago(at)zarate(dot)net(dot)ve>, vepug(at)postgresql(dot)org
Date: Monday, March 5, 2012, 3:28 PM
Juan, a lo mejor tienes los logs con poco nivel de detalle... en todo caso verifica los permisos para el usuario en la funcion y el esquema donde se encuentra la funcion, aunque si es el mismo usuario que usas en pgadmin los permisos deben estar bien.
saludos
El lun, 05-03-2012 a las 10:47 -0430, rootweiller escribió:
Así es, lo agrego schema.funcion(parametros) le coloco un $sql para imprimir lo que es enviado y correctamente SELECT schema.funcion(985, 'Hola', 'Hola'), no me genera ningún error he revisado los logs y nada :(
Ejecute el SET search_path a ver si era eso y aún, nada :(
El 5 de marzo de 2012 09:48, Santiago Zarate <santiago(at)zarate(dot)net(dot)ve> escribió:
Juan, en teoria (Y en la practica), deberias agregar el esquema en el
que se encuentra tu funcion, a la ruta de busqueda de tu cliente
(pgadmin _creo_ que las agrega automaticamente apartir de cierta
version). Si revisas los mensajes de error que deberia estar
arrojandote el lenguaje, deberias poder ver que te dice que la funcion
"tal" no esta definida.... puedes hacer dos cosas:
select schema.funcion(parametros)
o, antes de llamar a tu funcion, (de hecho, mejor aun al inicializar
tu conexion):
SET search_path TO tuschema, otroschema, public; -- recuerda que
public es "el general" asi que no te recomiendo quitarlo de esa linea
Saludos
2012/3/5 rootweiller <rootweiller83(at)gmail(dot)com>:
> Saludos, me encuentro trabajando con una BD desarrollada con postgresql 8.4
> la misma tiene 5 schemas dentro de los cuales están las tablas y funciones
> necesarias para su funcionamiento (hasta ahí todo bien), el problema surge
> cuando se intenta desde afuera hacer un llamado a las funciones, las mismas
> no responden a pesar de que el sql impreso si funciona cuando se ejecuta
> desde el pgadmin3
>
> ejemplo:
>
> SELECT fn_insert_cable(coaxial, '2'); si ejecuto esto desde cualquier
> lenguaje de programación no pasa nada (estamos usando PHP5), pero si lo
> ejecuto desde pgadmin3 lo agrega sin problemas. Probamos la conexión con BD
> y está correcta, el usuario que usamos para conectarnos tiene los permisos
> necesarios y es el owner de la BD sobre la cual estamos trabajando.
>
> Un ejemplo de una de las funciones:
>
> CREATE FUNCTION fn_insert_aleacion(v_codaleacion integer, v_aleacion
> character, v_caraleacion character) RETURNS integer
> LANGUAGE plpgsql
> AS $$
> DECLARE
>
> BEGIN
> INSERT INTO cab_fundicion.t_aleacion(e_codaleacion, c_aleacion,
> c_caracteristicas) VALUES (v_codaleacion, v_aleacion, v_caraleacion);
> return 1;
>
> EXCEPTION
>
> WHEN unique_violation THEN RAISE NOTICE 'Duplicidad de Codigo';
> return 0;
> WHEN others THEN
> RAISE NOTICE 'Error Insertando el Registro';
> return 0;
> END;
> $$;
>
>
> Gracias de antemano, espero su ayuda...
>
> --
> Juan Vargas
> (58) 414-9926363
> http://www.bolivarlug.org.ve
> Linux User 461138
>
>
--
Santiago Zarate
+(507) 64271684
santiago(at)zarate(dot)net(dot)ve
"La mejor forma de hacer que un adolecente lea un libro es vetandolo.
Cuando alguien que ostenta una figura de autoridad dice, 'Danos tu
libro', creo que esos estudiantes piensan 'Debe haber algo poderoso en
esas palabras'." - Erin Gruwell
"The best way to get a teenager to read a book is to ban it. When
someone who is a daunting authority figure says, 'Give us your book',
I think these students [thought], 'There must be something powerful in
these words'. " - Erin Gruwell
--
Juan Vargas
(58) 414-9926363
Linux User 461138
Apaga todo Artefacto Eléctrico antes de SALIR
Lo invitamos a disfrutar de nuestro servicio de Call Center, a través del Tlf. 0800-OPEN-000
Conoce Usted nuestro programa de Recompensas Open Pass?
http://www.openworldconsult.com.ve/enter.html
Ramón Bastidas
Coordinador de Adiestramiento
Open World Consultores, C.A. -Venezuela-
E-mail: ramon(dot)bastidas(at)open-world(dot)com(dot)ve URL: http://www.openworldconsult.com.ve
Puerto Ordaz 58 286 9515973 Caracas 58 212 9594777
Maracaibo 58 261 7983369 Mérida 0800 OPEN-000
Movil 58 412 8393899
From: | rootweiller <rootweiller83(at)gmail(dot)com> |
---|---|
To: | Lennin Caro <lennin(dot)caro(at)yahoo(dot)com> |
Cc: | ramon(dot)bastidas(at)open-world(dot)com(dot)ve, Santiago Zarate <santiago(at)zarate(dot)net(dot)ve>, vepug(at)postgresql(dot)org |
Subject: | Re: Problemas con SCHEMAS postgresql 8.4 |
Date: | 2012-03-05 16:48:12 |
Message-ID: | CA+=-Zve_NOTsfY5U9X43Lt_vLwGEh8KzFF7jnbx1FJ=1vZ=wNQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | vepug |
Así es, usuario con el que conecto "admin" desde el PHP es el mismo dueño
en Postgresql del procedimiento. Correcto, cuando digo "no arroja nada" es
por que cuando con busco en la tabla, no se han guardado los registros que
le envié desde el PHP.
El 5 de marzo de 2012 11:52, Lennin Caro <lennin(dot)caro(at)yahoo(dot)com> escribió:
> El usuario con el que realizas la conexion desde el php es el mismo dueño
> del procedimiento?
>
> Cuando dices que no arroja nada el $sql verificaste si inserto el registro
> en la tabla?
>
> ------------------------------
>
>
> Ing. Lennin Caro Pérez
> Usuario:GNU/LINUX
> PHP Developer
> PostgreSQL DBA
> Oracle DBA
> Linux counter id 474393
>
> --- On *Mon, 3/5/12, Ramon Bastidas <ramon(dot)bastidas(at)open-world(dot)com(dot)ve>*wrote:
>
>
> From: Ramon Bastidas <ramon(dot)bastidas(at)open-world(dot)com(dot)ve>
> Subject: Re: [vepug] Problemas con SCHEMAS postgresql 8.4
> To: "rootweiller" <rootweiller83(at)gmail(dot)com>
> Cc: "Santiago Zarate" <santiago(at)zarate(dot)net(dot)ve>, vepug(at)postgresql(dot)org
> Date: Monday, March 5, 2012, 3:28 PM
>
>
> Juan, a lo mejor tienes los logs con poco nivel de detalle... en todo
> caso verifica los permisos para el usuario en la funcion y el esquema donde
> se encuentra la funcion, aunque si es el mismo usuario que usas en pgadmin
> los permisos deben estar bien.
>
>
> saludos
>
> El lun, 05-03-2012 a las 10:47 -0430, rootweiller escribió:
>
> Así es, lo agrego schema.funcion(parametros) le coloco un $sql para
> imprimir lo que es enviado y correctamente SELECT schema.funcion(985,
> 'Hola', 'Hola'), no me genera ningún error he revisado los logs y nada :(
>
> Ejecute el SET search_path a ver si era eso y aún, nada :(
>
> El 5 de marzo de 2012 09:48, Santiago Zarate <santiago(at)zarate(dot)net(dot)ve>
> escribió:
>
> Juan, en teoria (Y en la practica), deberias agregar el esquema en el
> que se encuentra tu funcion, a la ruta de busqueda de tu cliente
> (pgadmin _creo_ que las agrega automaticamente apartir de cierta
> version). Si revisas los mensajes de error que deberia estar
> arrojandote el lenguaje, deberias poder ver que te dice que la funcion
> "tal" no esta definida.... puedes hacer dos cosas:
>
> select schema.funcion(parametros)
>
> o, antes de llamar a tu funcion, (de hecho, mejor aun al inicializar
> tu conexion):
>
> SET search_path TO tuschema, otroschema, public; -- recuerda que
> public es "el general" asi que no te recomiendo quitarlo de esa linea
>
> Saludos
>
> 2012/3/5 rootweiller <rootweiller83(at)gmail(dot)com>:
>
> > Saludos, me encuentro trabajando con una BD desarrollada con
> postgresql 8.4
> > la misma tiene 5 schemas dentro de los cuales están las tablas y
> funciones
> > necesarias para su funcionamiento (hasta ahí todo bien), el problema
> surge
> > cuando se intenta desde afuera hacer un llamado a las funciones, las
> mismas
> > no responden a pesar de que el sql impreso si funciona cuando se ejecuta
> > desde el pgadmin3
> >
> > ejemplo:
> >
> > SELECT fn_insert_cable(coaxial, '2'); si ejecuto esto desde cualquier
> > lenguaje de programación no pasa nada (estamos usando PHP5), pero si lo
> > ejecuto desde pgadmin3 lo agrega sin problemas. Probamos la conexión con
> BD
> > y está correcta, el usuario que usamos para conectarnos tiene los
> permisos
> > necesarios y es el owner de la BD sobre la cual estamos trabajando.
> >
> > Un ejemplo de una de las funciones:
> >
> > CREATE FUNCTION fn_insert_aleacion(v_codaleacion integer, v_aleacion
> > character, v_caraleacion character) RETURNS integer
> > LANGUAGE plpgsql
> > AS $$
> > DECLARE
> >
> > BEGIN
> > INSERT INTO cab_fundicion.t_aleacion(e_codaleacion, c_aleacion,
> > c_caracteristicas) VALUES (v_codaleacion, v_aleacion, v_caraleacion);
> > return 1;
> >
> > EXCEPTION
> >
> > WHEN unique_violation THEN RAISE NOTICE 'Duplicidad de Codigo';
> > return 0;
> > WHEN others THEN
> > RAISE NOTICE 'Error Insertando el Registro';
> > return 0;
> > END;
> > $$;
> >
> >
> > Gracias de antemano, espero su ayuda...
> >
> > --
> > Juan Vargas
> > (58) 414-9926363
> > http://www.bolivarlug.org.ve
> > http://zerobytes.com.ve
> > Linux User 461138
> >
> >
>
>
>
>
> --
> Santiago Zarate
> +(507) 64271684
> santiago(at)zarate(dot)net(dot)ve
>
> "La mejor forma de hacer que un adolecente lea un libro es vetandolo.
> Cuando alguien que ostenta una figura de autoridad dice, 'Danos tu
> libro', creo que esos estudiantes piensan 'Debe haber algo poderoso en
> esas palabras'." - Erin Gruwell
>
> "The best way to get a teenager to read a book is to ban it. When
> someone who is a daunting authority figure says, 'Give us your book',
> I think these students [thought], 'There must be something powerful in
> these words'. " - Erin Gruwell
>
>
>
>
> --
> Juan Vargas
> (58) 414-9926363
> http://www.bolivarlug.org.ve
> http://zerobytes.com.ve <http://blog.rootweiller.com.ve>
> Linux User 461138
>
>
>
>
> Apaga todo Artefacto Eléctrico antes de SALIR
>
> *Lo invitamos a disfrutar de nuestro servicio de Call Center, a través
> del Tlf. 0800-OPEN-000*
>
> Conoce Usted nuestro programa de Recompensas Open Pass?
> http://www.openworldconsult.com.ve/enter.html<http://www.openworldconsult.com.ve/enter.htm>
>
> *Ramón Bastidas*
> Coordinador de Adiestramiento
> Open World Consultores, C.A. -Venezuela-
> E-mail: ramon(dot)bastidas(at)open-world(dot)com(dot)ve URL:
> http://www.openworldconsult.com.ve
>
>
> Puerto Ordaz 58 286 9515973 Caracas 58 212 9594777
> Maracaibo 58 261 7983369 Mérida 0800 OPEN-000
> Movil 58 412 8393899
>
>
--
Juan Vargas
(58) 414-9926363
http://www.bolivarlug.org.ve
http://zerobytes.com.ve <http://blog.rootweiller.com.ve>
Linux User 461138