tabla mbasicos
idinventario int
idcnmb int
valor int
consecutivo int(es valor es autoincrementado)
los procedimientos utilizados son los siguiente en este caso dos uno para devolver la cantidad de registros totales y otro para que devuelva los resultados de la consulta paginados
Código:
y este q devuelve la cantidad total de registrosCREATE PROCEDURE [dbo].[paginacion_ejemplo] --NUMERO DE PAGINA A MOSTRAR @index int, --TOTAL DE REGISTROS POR PAGINA @num_regs int, --CNMB @cnmb 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( IdNroInvent varchar(10), IdCNMB varchar(10), Descripcion varchar(40), ValorMn money, consecutivo int, ) --INSERTAR LOS DATOS A LA TABLA TEMPORAL DIRECTAMENTE DESDE EL SELECT INSERT #tmpListado SELECT IdNroInvent, IdCNMB, Descripcion, ValorMn, consecutivo FROM tMBasicos WHERE IdCNMB = @cnmb ORDER BY consecutivo --UNA VEZ CARGADOS LOS DATOS LOS EXTRAEMOS --CON UN SELECT FILTRADO POR LOS VALORES DE LA PAGINACION SELECT IdNroInvent, IdCNMB, Descripcion, ValorMn, consecutivo FROM #tmpListado WHERE consecutivo BETWEEN @minimo AND @maximo END
Código:
segun he revizado el problema consiste en el SP [paginacion_ejemplo] que al seleccionar de la tabla temporal tiene encuenta que el valor del campo consecutivo este dentro de los parametros @minimo y @maximo . por favor si alguien me puede dar alguna idea de como solucionar para que me muestre todos los registro por paginas . porque me los muestra por ejemplo si filtro el cnmb= 501 entonces si el consecutivo esta fuera del valor del 1 al 20 me lo muestra en la otra pagina y sin embargo tengo q muestre los primeros 20 perdonen si me explico mal pero me paerece q asi es mi problema ojala me puedan ayudar esto me tiene al borde jejej gracias de ante manos CREATE PROCEDURE [dbo].[paginacion_ejemplo_registros] --CNMB @cnmb int AS BEGIN SELECT IdNroInvent, IdCNMB, Descripcion, ValorMn, consecutivo FROM tMBasicos WHERE IdCNMB = @cnmb END