27.12.16 15:39
Benim verdiğim örnekte OUTPUT parametresi için bir işlem yok. Olmadığından ilgili satırda değer null dönüyor ve hata veriyor. Bu örneğe @RecordCount parametresine değer atıyor. ALTER PROCEDURE [dbo].[GetCustomersPageWise]
@PageIndex INT = 1,
@PageSize INT = 15,
@orderColumn int,
@orderdir nvarchar(10),
@RecordCount INT OUTPUT
AS
BEGIN
SELECT Urunler.UrunFiyati,Urunler.StokKodu, dbo.Urunler.UrunAdi, dbo.Urunler.Nekadardandustu,
dbo.Urunler.Hit,dbo.Urunler.UrunDetay, dbo.Urunler.UrunId, dbo.Urunler.EnCokSatanlar, dbo.Urunler.Indirimdekiler,
dbo.Urunler.Resmi2, dbo.Urunler.Resmi, dbo.Urunler.Onay,
dbo.Urunler.Vitrin, dbo.UrunKategoriler.UrunKategoriAdi
FROM dbo.Urunler INNER JOIN dbo.UrunKategoriler ON dbo.Urunler.UrunKategoriId = dbo.UrunKategoriler.UrunKategoriId order by
CASE WHEN @orderColumn = 1 AND @orderdir = 'desc' THEN Urunler.UrunAdi END DESC,
CASE WHEN @orderColumn = 1 AND @orderdir = 'asc' THEN Urunler.UrunAdi END asc,
CASE WHEN @orderColumn = 2 AND @orderdir = 'desc' THEN cast(Urunler.UrunFiyati as int) END DESC,
CASE WHEN @orderColumn = 2 AND @orderdir = 'asc' THEN cast(Urunler.UrunFiyati as int) END asc
OFFSET @PageSize * (@PageIndex - 1) ROWS
FETCH NEXT @PageSize ROWS ONLY
SELECT @RecordCount = COUNT(*) FROM Urunler
END Ek: Şart Eklenmiş Hali ALTER PROCEDURE [dbo].[GetCustomersPageWise]
@PageIndex INT = 1,
@PageSize INT = 15,
@orderColumn int,
@orderdir nvarchar(10),
@RecordCount INT OUTPUT
AS
BEGIN
SELECT Urunler.UrunFiyati,Urunler.StokKodu, dbo.Urunler.UrunAdi, dbo.Urunler.Nekadardandustu,
dbo.Urunler.Hit,dbo.Urunler.UrunDetay, dbo.Urunler.UrunId, dbo.Urunler.EnCokSatanlar, dbo.Urunler.Indirimdekiler,
dbo.Urunler.Resmi2, dbo.Urunler.Resmi, dbo.Urunler.Onay,
dbo.Urunler.Vitrin, dbo.UrunKategoriler.UrunKategoriAdi
FROM dbo.Urunler INNER JOIN dbo.UrunKategoriler ON dbo.Urunler.UrunKategoriId = dbo.UrunKategoriler.UrunKategoriId order by
CASE WHEN @orderColumn = 1 AND @orderdir = 'desc' THEN Urunler.UrunAdi END DESC,
CASE WHEN @orderColumn = 1 AND @orderdir = 'asc' THEN Urunler.UrunAdi END asc,
CASE WHEN @orderColumn = 2 AND @orderdir = 'desc' THEN cast(Urunler.UrunFiyati as int) END DESC,
CASE WHEN @orderColumn = 2 AND @orderdir = 'asc' THEN cast(Urunler.UrunFiyati as int) END asc
WHERE dbo.Urunler.Vitrin=1 AND dbo.Urunler.Onay = 1
OFFSET @PageSize * (@PageIndex - 1) ROWS
FETCH NEXT @PageSize ROWS ONLY
SELECT @RecordCount = COUNT(*) FROM Urunler WHERE dbo.Urunler.Vitrin=1 AND dbo.Urunler.Onay = 1
END
Ekleyen: cevapsitesi
Değiştiren: cevapsitesi
15.12.16 18:19
Benim verdiğim örnekte OUTPUT parametresi için bir işlem yok. Olmadığından ilgili satırda değer null dönüyor ve hata veriyor. Bu örneğe @RecordCount parametresine değer atıyor. ALTER PROCEDURE [dbo].[GetCustomersPageWise]
@PageIndex INT = 1,
@PageSize INT = 15,
@orderColumn int,
@orderdir nvarchar(10),
@RecordCount INT OUTPUT
AS
BEGIN
SELECT Urunler.UrunFiyati,Urunler.StokKodu, dbo.Urunler.UrunAdi, dbo.Urunler.Nekadardandustu,
dbo.Urunler.Hit,dbo.Urunler.UrunDetay, dbo.Urunler.UrunId, dbo.Urunler.EnCokSatanlar, dbo.Urunler.Indirimdekiler,
dbo.Urunler.Resmi2, dbo.Urunler.Resmi, dbo.Urunler.Onay,
dbo.Urunler.Vitrin, dbo.UrunKategoriler.UrunKategoriAdi
FROM dbo.Urunler INNER JOIN dbo.UrunKategoriler ON dbo.Urunler.UrunKategoriId = dbo.UrunKategoriler.UrunKategoriId order by
CASE WHEN @orderColumn = 1 AND @orderdir = 'desc' THEN Urunler.UrunAdi END DESC,
CASE WHEN @orderColumn = 1 AND @orderdir = 'asc' THEN Urunler.UrunAdi END asc,
CASE WHEN @orderColumn = 2 AND @orderdir = 'desc' THEN cast(Urunler.UrunFiyati as int) END DESC,
CASE WHEN @orderColumn = 2 AND @orderdir = 'asc' THEN cast(Urunler.UrunFiyati as int) END asc
OFFSET @PageSize * (@PageIndex - 1) ROWS
FETCH NEXT @PageSize ROWS ONLY
SELECT @RecordCount = COUNT(*) FROM Urunler
END
Ekleyen: cevapsitesi