Ver Mensaje Individual
  #3 (permalink)  
Antiguo 16/12/2005, 08:58
Avatar de pablod
pablod
 
Fecha de Ingreso: abril-2004
Ubicación: Santiago
Mensajes: 118
Antigüedad: 20 años
Puntos: 0
Holas, el día de ayer realice la misma consulta en el foro. Le di muchas vueltas a este tema.

Cluster me oriento y logre realizar la paginación basada en un procedimiento almacenado el cual retorna los registros de forma paginada, desde PHP solo le envio los parametros y el procedure realiza, es decir simula una paginación.

Acá dejo el codigo del procedimiento almacenado, aún no lo he refinado tanto, pero funciona.

Código:
--SP QUE RETORNA UNA CONSULTA PAGINADA
--RECIBE PARAMETROS PARA LA PAGINACION

CREATE PROCEDURE paginacion_ejemplo
--NUMERO DE PAGINA A MOSTRAR
@index int,
--TOTAL DE REGISTROS POR PAGINA
@num_regs int

AS
    
    BEGIN

        --ESTOS SERNA LOS INDICES PARA LA PAGINACION
		DECLARE @maximo numeric
        DECLARE @minimo numeric

        SELECT @maximo = (@index * @num_regs)
        SELECT @minimo = @maximo - (@num_regs - 1)

        --CREACION DE LA TABLA TEMPORAL PARA LA PAGINACION
        --NUM_ORDEN SERVIRA DE INDICE PARA EXTRAER LOS REGISTROS

        CREATE TABLE #tmpListado(
            num_orden int IDENTITY(1,1),
            id_radio int,
            nombre_radio varchar(15)
        )

        --INSERTAR LOS DATOS A LA TABLA TEMPORAL DIRECTAMENTE DESDE EL SELECT
        INSERT #tmpListado SELECT id_radio, nombre_radio FROM tb_adm_radio ORDER BY nombre_radio

        --UNA VEZ CARGADOS LOS DATOS LOS EXTRAEMOS
        --CON UN SELECT FILTRADO POR LOS VALORES DE LA PAGINACION
        SELECT id_radio, nombre_radio 
        FROM #tmpListado
        WHERE num_orden BETWEEN @minimo AND @maximo

    END
--FIN--
Cualquier información sobre este tema, espero la hagan llegar.

Saludos.

P4blo.-
__________________
Pablod:-)