Amigos como estan, estoy intentando hacer una paginacion en un programita que estoy haciendo, dentro del programa manejo una variable que me almacena la posicion del registro que deseo obtener de la base de datos.
Con esta posicion lo que hago es llamar a un procedimiento almacenado el cual ejecuta la consulta y me retorna el registro que deseo, pero no se como poner el offset dentro de mi consulta ya que este lo tengo en una variable, el procedimiento que uso es el siguiente.
CREATE OR REPLACE FUNCTION asiento_cabecera_recupera_por_offset(pagecod character varying, pboton character varying, poffset integer)
RETURNS refcursor AS
$BODY$
DECLARE
casiento refcursor;
total_registros int;
posicion int;
BEGIN
posicion:=poffset;
if pboton='INICIO' then
select into total_registros coalesce(count(asidoc),0)
from asicab
where asiagecod=pagecod;
posicion:=total_registros;
end if;
open casiento for
select asidoc,docnom,asinum,asiben,asifec,asides,asiref,asimod
from asicab
inner join documentos on asiagecod=docagecod and asidoc=doccod
where asiagecod=pagecod
order by asifec desc limit 1 offset posicion;
return casiento;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
Como ven aqui en donde coloco el offset deberia poner directo un valor numerico pero si a este lo tengo en una variable como deberia ponerlo para que funcione correctamente.
Tal y como esta el procedimiento funciona pero no me retorna los valores deseados.
Saludos
Fernando
_________________________________________________________________
Connect to the next generation of MSN Messenger
http://imagine-msn.com/messenger/launch80/default.aspx?locale=en-us&source=wlmailtagline