Hola a todos, verán, tengo un sistema que esta diseñado para utilizar MySql como gestor principal. Sin embargo por motivos laborales tenemos que usar SQL Server ahora. Hemos trabajado en el pase a sql y casi todo esta listo faltando solo la paginación.
El sistema tiene alrededor de 600 registros que a su vez tiene otros registros dentro (repositorio de datos) por lo cual con Mysql utilizamos la paginación para no mostrar todos los datos de un solo golpe, esto usando LIMIT:
La sintaxis es algo asi:
$sql->query("SELECT * from $default->owl_xxxx_table where parent = '$parent' $whereclause order by name $sLimit");
Lamentablemente esto en sql server no funciona, hemos tratado con algo como lo siguiente:
$sql->query(" SELECT * FROM (SELECT TOP($end) *, ROW_NUMBER() OVER (ORDER BY name) AS RowNum FROM $default->owl_xxx_table where parent = '$parent' $whereclause) x WHERE x.RowNum BETWEEN $beg AND $end");
ó
$sql->query("SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY name) AS rn,* FROM $default->owl_xxx_table where parent = '$parent' $whereclause ) AS sub WHERE rn >= $beg AND rn <= $end");
Tenemos varias paginas (1,2,3,4,5,etc), cada una debería mostrar 10 registros
con lo anterior (claro esta que tenemos dos variables una nextfolders y otra record_per_page q son las de la consulta como $beg,$end) si hago click en la primer página me muestra los 10 registros sin problemas, pero si doy click en 2 me muestra solo 1 y en 3 ya no me muestra nada.
Conocen alguna forma de solventar este problema de paginación, o si tengo algun error en la consulta.
Saludos,