Ver Mensaje Individual
  #7 (permalink)  
Antiguo 09/08/2011, 13:55
Avatar de mdavila
mdavila
 
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 17 años, 3 meses
Puntos: 13
Respuesta: transact STORE PROCEDURE

Perdona que te joda asi pero como te comente antes no tengo mucha idea de esto.
Todo esto es para optimizar una pagina y que no retorne todos los registros, solo los que se estan mostrando en una grilla.


Este es el SP que tengo hasta ahrora y donde dice importante es donde tengo problemas.
Se entiende?

MUCHAS GRACIAS.


USE [GallitoDigital]
GO
/****** Object: StoredProcedure [dbo].[GetAutos] Script Date: 08/09/2011 12:50:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
alter PROCEDURE [dbo].[GetAutosMult]
@PageIndex int
,@PageSize int
,@Orden varchar(80)
,@RecordCount int out
,@TipoOrden varchar(80)
,@Marcas varchar(max)
,@TipoOrdenAscDesc varchar(10)
AS
BEGIN
SET NOCOUNT ON;

SELECT Cla.ClaDsc, AviProCod, AviSolWeb, Textos.AviTxt, Avisos.AviCantFot, Avisos.AviCantVis, Avisos.AviVtaCod, Avisos.AviSbpCod, Avisos.AviRec, Avisos.AviDisSup, Avisos.AviDisInf, Avisos.AviOpeNro, Avisos.AviWebFot,Avisos.AviUbiInt4, Avisos.AviUbiInt2, Avisos.AviRecCol, Avisos.AviCabCol, Avisos.AviFonCol, AutMod.AutModDsc, DetAutCero, DetAutMon, DetAutAlar, DetAutBlq, DetAutAirb, DetAutABS, DetAutAire, DetAutAlza, DetAutCil, DetAutColo, DetAutDire, DetAutEstV, DetAutKmt, DetAutAnio, DetAutTran, DetAutTpoA, DetAutImp, ROW_NUMBER() OVER
(ORDER BY Avisos.AviUbiInt4 desc, Avisos.AviWebFot desc, Textos.AviTxtOrd
) AS RowNumber


INTO #Results
FROM Avisos INNER JOIN Textos ON Avisos.AviVtaCod = Textos.AviVtaCod INNER JOIN DetAuto ON Avisos.AviVtaCod = DetAuto.DetAutCod INNER JOIN AUTMAR ON DetAuto.DetAutMarC = AUTMAR.AutMarCod AND DetAuto.DetAutTpoC = AUTMAR.AutTpoCod INNER JOIN AUTMOD ON DetAuto.DetAutMarC = AUTMOD.AutMarCod AND DetAuto.DetAutTpoC = AUTMOD.AutTpoCod AND DetAuto.DetAutModC = AUTMOD.AutModCod INNER JOIN AUTTPO ON AUTMOD.AutTpoCod = AUTTPO.AutTpoCod inner join cla on cla.clacod = avisos.aviclacod

/*Lo importante*/
Where (Avisos.AviSbpCod <> 3) and (avisos.avisbpcod <> 5) --and @Marcas

/*-------------------------*/

SELECT @RecordCount = COUNT(*)
FROM #Results

SELECT * FROM #Results
WHERE RowNumber BETWEEN(@PageIndex -1) * @PageSize + 1 AND(((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1

DROP TABLE #Results

END
__________________
Marcelo Davila.

:. En Ignorante te conviertes al no preguntar, el que pregunta se nutre... :.