Re: Problemas con SCHEMAS postgresql 8.4

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

> 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: 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