RE: <Unnamed Portal 1>???

From: Henry <hensa22(at)yahoo(dot)es>
To: Esteban Arias <estariascl(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: RE: <Unnamed Portal 1>???
Date: 2007-11-28 13:55:11
Message-ID: 433588.16117.qm@web30802.mail.mud.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


--- Esteban Arias <estariascl(at)gmail(dot)com> escribió:

> Señores, yo de nuevo con mis dudas...
>
> La cosa es la siguiente, entiendo según he leído y
> googleado que para
> ejecutar un procedimiento almacenado debo hacer lo
> siguiente, al menos en
> consola de psql,
>
> begin;
> select f_validausuario('earias');
> -- lo que me resulta lo siguiente
> f_validausuario
> --------------------
> <unnamed cursor 1>
>
> --luego, hago lo siguiente
> FETCH ALL IN "<unnamed cursor 1>";
> -- y me retorna los resultados esperados.
>
> Ahora viene la pregunta, como diablos puedo rescatar
> los datos que me
> retorna este procedimiento en PHP
>
> tengo esto, aunque no me da error, no encuentro la
> manera
>
>
> $result2 = pg_query($db_conn, "BEGIN; DECLARE
> rcursor CURSOR FOR SELECT
> f_datosusuario('$v_vUsername'); FETCH ALL IN
> rcursor;");
>
> while ($datos = pg_fetch_array($result2))
> { etc etc
>
> Maestros, una vez mas les pido ayuda, espero me
> puedan ayudar.
>
> saludos desde chile
>

hola,
para que no se te haga muy dificil, manda un refcursor
como parametro,y lo abres dentro de tu funcion y al
final quedaria algo como:

begin;
select algunafuncion('earias','un_refcursor');
fetch all in un_refcursor;
y despues hace un commit;

si esta en autocommit,
dile a PHP que desactive ea opcion,entonces en PHP
seria algo como:

$result2 = pg_query($db_conn, "BEGIN;SELECT
f_datosusuario('$v_vUsername','un_refcursor'); FETCH
ALL IN un_refcursor;")

while ($datos = pg_fetch_array($result2))
.
.
.
y despues no olvides el commit;

$result2 = pg_query($db_conn, "commit;")--me imagino
que sera algo asi

ojea la documentacion, especialmente la ultima parte
http://www.postgresql.org/docs/8.2/static/plpgsql-cursors.html#PLPGSQL-CURSOR-OPENING

Saludos

______________________________________________
¿En Madrid por primera vez?
Aprovecha el conocimiento de más de 2 millones de personas
http://es.answers.yahoo.com/info/welcome

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2007-11-28 15:13:46 Re: Preocupacion con PostgreSQL
Previous Message juan chinga 2007-11-28 13:22:16 RE: <Unnamed Portal 1>???