He conseguido adaptar un poco el paginador de jpinedo al mssql. Tras cambiar las funciones mysql por las equivalentes mssql, he añadido lo siguiente en la línea 320 aprox.
Código PHP:
// Calculamos desde qué registro se mostrará en esta página
// Recordemos que el conteo empieza desde CERO.
$_pagi_inicial = ($_pagi_actual-1) * $_pagi_cuantos;
// Consulta SQL. Devuelve $cantidad registros empezando desde $_pagi_inicial
/*** modificacion para SQL SERVER ***/
//echo("<br />pagi_sql: ".$_pagi_sql);
$_orderby_subquery2 = "";
$_orderby_subquery1 = "";
$_orderby_query = "";
if( eregi("(ORDER BY [a-z0-9\., ]+)", $_pagi_sql, $regs) == false )
{
$_pagi_sql .= " ORDER BY Id ASC";
$_orderby_subquery1 = "ORDER BY subquery.Id DESC";
$_orderby_query = "ORDER BY query.Id ASC";
}
else
{
$_orderby_subquery1 = $regs[1];
$_orderby_query = $regs[1];
// cambiamos los ASC por DESC o al reves
$_orderby_temp = str_replace("ASC", "DESC", $_orderby_subquery1);
if( $_orderby_temp == $_orderby_subquery1)
{
$_orderby_temp = str_replace("DESC", "ASC", $_orderby_subquery1);
}
$_orderby_subquery1 = $_orderby_temp;
}
$top_subquery2 = $_pagi_inicial + $_pagi_cuantos;
$_pagi_subquery2 = str_replace( "SELECT", "SELECT TOP ".$top_subquery2, $_pagi_sql);
// calculo del valor de top de la subquery1
if( $top_subquery2 > $_pagi_totalReg )
{
$top_subquery1 = $_pagi_totalReg - $_pagi_inicial;
}
else
{
$top_subquery1 = $_pagi_cuantos;
}
$_pagi_subquery1 = $_pagi_subquery1 = "SELECT TOP ".$top_subquery1." * FROM (".$_pagi_subquery2.") as subquery ".$_orderby_subquery1;
//echo("<br />subquery2: ".$_pagi_subquery2);
//echo("<br />subquery1: ".$_pagi_subquery1);
// creamos la query final
$_pagi_sqlLim = "SELECT * FROM (".$_pagi_subquery1.") as query ".$_orderby_query;
//echo("<br />query final: ".$_pagi_sqlLim);
// $_pagi_sqlLim = $_pagi_sql." LIMIT $_pagi_inicial,$_pagi_cuantos";
/*** modificacion para SQL SERVER ***/
$_pagi_result = ExecuteQuery($_pagi_sqlLim);
Funciona bien con consultas simples, pero falla con consultas a más de una tabla. Invito a cualquiera a desarrollar el código.
Un saludo