SQL Server Procedure Paging
Publicado por Jose (5 intervenciones) el 18/06/2004 10:16:05
Tengo otro problemilla con el SQL Server,tengo nu procedure que pagina pero quiero devolver ademas el numero total de filas de la vista que ataco pero el problema es:
CREATE PROCEDURE Compres.Paging_RowCount
(
@Tables varchar(1000),
@PK varchar(100),
@Sort varchar(200) = NULL,
@PageNumber int = 1,
@PageSize int = 10,
@Fields varchar(1000) = '*',
@Filter varchar(1000) = NULL,
@Group varchar(1000) = NULL,
@TotalRows int Out
)
que quiero devolver ademas el TOtalRows. Este codigo es el que lanza el SQL pero las variables que declaro aki en el EXEC no puedo devolverlas como parametro de salida. Lo que querria es poder asignar un SELECT COUNT (*) a la variable TotalRows que devolvere y recogere en VB.NET pero no se puede.... Como me lo monto??? pa hacer que ejectue el SQL que ya va pero ademas pueda asignarle al parametro de saldia es SELECT COUNT poruqe si que lo puedo asignar a la variable TotalRow pero fuera del exec esa variable no existe.... Graicas por todo !!!
EXEC(
'
DECLARE @SortColumn ' + @type + '
SET ROWCOUNT ' + @strStartRow + '
SELECT @SortColumn=' + @strSortColumn + ' FROM ' + @Tables + @strFilter + ' ' + @strGroup + ' ORDER BY ' + @Sort + '
SET ROWCOUNT ' + @strPageSize + '
SELECT ' + @Fields + ' FROM ' + @Tables + ' WHERE ' + @strSortColumn + @operator + ' @SortColumn ' + @strSimpleFilter + ' ' + @strGroup + ' ORDER BY ' + @Sort + '
DECLARE @TotalRow int
SELECT @TotalRow = COUNT (*) FROM ' + @Tables + @strFilter + ' ' + @strGroup + '
'
)
GO
CREATE PROCEDURE Compres.Paging_RowCount
(
@Tables varchar(1000),
@PK varchar(100),
@Sort varchar(200) = NULL,
@PageNumber int = 1,
@PageSize int = 10,
@Fields varchar(1000) = '*',
@Filter varchar(1000) = NULL,
@Group varchar(1000) = NULL,
@TotalRows int Out
)
que quiero devolver ademas el TOtalRows. Este codigo es el que lanza el SQL pero las variables que declaro aki en el EXEC no puedo devolverlas como parametro de salida. Lo que querria es poder asignar un SELECT COUNT (*) a la variable TotalRows que devolvere y recogere en VB.NET pero no se puede.... Como me lo monto??? pa hacer que ejectue el SQL que ya va pero ademas pueda asignarle al parametro de saldia es SELECT COUNT poruqe si que lo puedo asignar a la variable TotalRow pero fuera del exec esa variable no existe.... Graicas por todo !!!
EXEC(
'
DECLARE @SortColumn ' + @type + '
SET ROWCOUNT ' + @strStartRow + '
SELECT @SortColumn=' + @strSortColumn + ' FROM ' + @Tables + @strFilter + ' ' + @strGroup + ' ORDER BY ' + @Sort + '
SET ROWCOUNT ' + @strPageSize + '
SELECT ' + @Fields + ' FROM ' + @Tables + ' WHERE ' + @strSortColumn + @operator + ' @SortColumn ' + @strSimpleFilter + ' ' + @strGroup + ' ORDER BY ' + @Sort + '
DECLARE @TotalRow int
SELECT @TotalRow = COUNT (*) FROM ' + @Tables + @strFilter + ' ' + @strGroup + '
'
)
GO
Valora esta pregunta


0