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

Responder a