Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/02/2013, 14:04
chuekeron
 
Fecha de Ingreso: octubre-2008
Ubicación: Bs. As., ARG
Mensajes: 203
Antigüedad: 15 años, 7 meses
Puntos: 6
Contar registros en SP y asignar a parámetro de salida

Buenas gente, tengo el siguiente SP:


Código SQL:
Ver original
  1. ALTER PROCEDURE [dbo].[productos_cat]
  2.     @ref1 nvarchar(50) = NULL,
  3.     @ref2 nvarchar(50) = NULL,
  4.     @ref3 nvarchar(50) = NULL,
  5.     @ref4 nvarchar(50) = NULL,
  6.     @ref5 nvarchar(50) = NULL,
  7.     @ref6 nvarchar(50) = NULL,
  8.     @PageNumber INT
  9.    
  10. AS
  11. BEGIN
  12.  
  13.    SET NOCOUNT ON;
  14.  
  15.     SELECT RXFAM1, RXFAM2, RXFAM3, RXFAM4, RXFAM5, RXFAM6, RXRESC, RXORDE, CPA01, CPA02, CPA03, PSPREC, CPMIS1
  16.     FROM
  17.     (SELECT RXFAM1, RXFAM2, RXFAM3, RXFAM4, RXFAM5, RXFAM6, RXRESC, RXORDE, CPA01, CPA02, CPA03, PSPREC, CPMIS1, ROW_NUMBER() OVER (ORDER BY RXORDE ASC)
  18.     AS Recursos
  19.     FROM dbo.Recursos WHERE RXFAM1 = COALESCE(NULLIF(@ref1, ''), RXFAM2) AND RXFAM2 = COALESCE(NULLIF(@ref2, ''), RXFAM2) AND RXFAM3 = COALESCE(NULLIF(@ref3, ''), RXFAM3) AND RXFAM4 = COALESCE(NULLIF(@ref4, ''), RXFAM4) AND RXFAM5 = COALESCE(NULLIF(@ref5, ''), RXFAM5) AND RXFAM6 = COALESCE(NULLIF(@ref6, ''), RXFAM6))
  20.     AS Resultados
  21.     WHERE Recursos BETWEEN 8 * @PageNumber  + 1 AND 8 * (@PageNumber +
  22.  
  23. END

Y lo ejecuto en PHP mediante:

Código PHP:
Ver original
  1. $sql = "EXEC dbo.productos_cat @ref1 = '$ref1', @ref2 = '$ref2', @ref3 = '$ref3', @ref4 = '$ref4', @ref5 = '$ref5', @ref6 = '$ref6', @PageNumber = '$pag'";

Necesito contar los registros resultantes de la consulta anterior, y colocar ese numero total de registros en una variable de salida para recuperarla en PHP.
Pude contar los registros utilizando SELECT COUNT (tal vez seria mejor aprovechar el ROW_NUMBER() de la consulta?) pero nunca pude lograr darle salida a la variable y recuperarla en ejecucion del SP que hago en PHP.

Alguna idea, que puedo estar haciendo mal?