estoy dándole vueltas a una paginación dentro de procedimientos almacenados y después de alguna búsqueda encontré este método para SQL Server 2000 (que es con lo que trabajo). La idea es sencilla: hacer la consulta, rellenar una tabla temporal con los resultados añadiendo un id y luego obtener el rango de registros deseados.
Cita:
Esto, en teoría y en el analizador de consultas funciona a la perfección, pero cuando intento trasladarlo a mi página (ASP) me dice que "La operación no está permitida si el objeto está cerrado.". La consulta principal que utilizo es correcta y, por separado, da sus resultados correctamente. Parece que es el paso por la tabla temporal y la posterior consulta lo que causa el problema./* Ejecutar una cosulta y añadir un ID de referencia a cada fila usando un campo auto-incremental field */
SELECT *, RowNum = Identity (int, 1, 1)
INTO #t
FROM Clientes
/* Seleccionar el subconjunto de filas que queremos obtener */
SELECT *
FROM #t
WHERE RowNum BETWEEN 20 AND 30
DROP TABLE #t
SELECT *, RowNum = Identity (int, 1, 1)
INTO #t
FROM Clientes
/* Seleccionar el subconjunto de filas que queremos obtener */
SELECT *
FROM #t
WHERE RowNum BETWEEN 20 AND 30
DROP TABLE #t
En un primer momento me comentaron que no podía montar la consulta principal en una cadena y hacer un exec() de esta, pero eliminado eso sigue sin funcionar.
Conoce alguien alguna limitación o problema en usar este tipo de paginación? cualquier orientación será muy bienvenida :)