From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | GABRIEL COLINA <colina_movil(at)yahoo(dot)com> |
Cc: | Sergio Vizcaino <SergioV(at)azud(dot)es>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Obtener los primeros registros de una consulta. |
Date: | 2007-02-08 14:51:08 |
Message-ID: | 20070208145108.GG24069@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
GABRIEL COLINA escribió:
> Alvaro, no quiero cuestionarte si no aprender.
> Tu opcion me parece interesante
>
> 1- Al usar un cursor de la forma que propones hay que hacerlo desde una
> funcion no ?
>
> Por que desde la consola me da este error.
>
> DECLARE CURSOR may only be used in transaction blocks
No en una funcion -- en una transaccion. Haz BEGIN y a continuacion el
DECLARE CURSOR. Todos los usos de ese cursor debes hacerlos dentro de
esa transaccion; a menos que declares el cursor WITH HOLD, en cuyo caso
el cursor persistira mas alla de la transaccion, y debes cerrarlo
manualmente en cuanto termines de usarlo.
Obviamente, como una funcion está dentro de una transacción, también se
puede hacer ahí.
> 2 - Si quiero operar un recordset desde una aplicacion a esto puedo
> aplicarle una regla para insert delete y update, como lo hago en una
> consulta ?
No entendi esta pregunta. ¿Tiene que ver con los cursores? ¿A qué le
quieres aplicar reglas?
> 3 - Y ultimo punto
>
> FETCH 50 FROM foo
> muestras esos 50, y despues
> FETCH ALL FROM foo
>
> Hacer esto no es como llamar a dos consultas ?
No, porque hacer dos SELECT significa hacer dos invocaciones al
ejecutor, en cambio si usas un cursor lo que haces es invocar el
ejecutor una vez, lo dejas "congelado" y continuas la ejecucion con cada
FETCH.
--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.
From | Date | Subject | |
---|---|---|---|
Next Message | Raúl Mero Moreira | 2007-02-08 15:17:12 | Re: hola que tal pregunta sobre buscquedas |
Previous Message | Rodolfo Burlando Makthon | 2007-02-08 14:39:20 | tsearch2 |