ALTER PROC hamtaBilderVy
(
@rader INT output,
@StartRad INT,
@SlutRad INT,
@userID uniqueidentifier
)
AS
BEGIN
SELECT tillhorandeAnvandarID, bildid, bildAdress, altTagg, titleTagg, datum, (SELECT COUNT (bildid) FROM bildbehorighet WHERE bildid=bilder.bildid) AS Behorighet
FROM (
SELECT tillhorandeAnvandarID ,bildid, bildAdress, altTagg, titleTagg, datum, (
SELECT COUNT (bildid) FROM bildbehorighet WHERE bildid=bilder.bildid) AS Behorighet, ROW_NUMBER() OVER(Order BY bildID) AS RowNumber
FROM bilder
)
bilder
WHERE RowNumber >= @StartRad AND RowNumber <= @SlutRad AND bilder.tillhorandeAnvandarID=@userID
END
SELECT @rader=COUNT(bildid) FROM bilder
WHERE tillhorandeAnvandarID=@userID
Kör man
SELECT COUNT (bildID) FROM BILDER
WHERE tillhorandeAnvandarID='någotuserid'
Får man ut värdet 14 för en speciell användare.
Kör man den lagrade proceduren får man ut att @rader har värdet 8. Har testat med SET @rader=100. Lik förbaskat får man ut att @rader har värdet 8.
För att köra min lagrade procedur använder jag mig utav ASP.NET C#
där jag har följande kod i ett Dataåtkomstlager
Jag är ingen stjärna på SQL, men ett par saker jag tänker på. Ingenstans verkar du faktiskt köra frågan. Det kanske inte är så man gör dock?
En annan sak jag funderar över. Har du prövat att skriva ut cmd.Parameters["@rader"].Value till debugkonsolen eller dylikt utan att casta den till en int?
Jag är ingen stjärna på SQL, men ett par saker jag tänker på. Ingenstans verkar du faktiskt köra frågan. Det kanske inte är så man gör dock?
En annan sak jag funderar över. Har du prövat att skriva ut cmd.Parameters["@rader"].Value till debugkonsolen eller dylikt utan att casta den till en int?
Klart jag kör frågan men den koden har jag inte tagit med. Att typkonventera om den till en string går tyvärr inte då den är av typen int. Tyvärr tror jag inte (har inte lyckats) att få ett värde av cmd.Parameters["@rader"].Value i debugmodet. Dock får jag ut värdet 8 på int rader.
Okej, jag är ju uppenbarligen inte helt hemma med ASP.NET C#, speciellt inte DB-anrop.
Hur blir det om du exekverar proceduren direkt i Management Studio?
DECLARE @rader int
EXECUTE hamtaBilderVy @rader output, [b]..., ..., ...[/b]
Okej, jag är ju uppenbarligen inte helt hemma med ASP.NET C#, speciellt inte DB-anrop.
Hur blir det om du exekverar proceduren direkt i Management Studio?
DECLARE @rader int
EXECUTE hamtaBilderVy @rader output, [b]..., ..., ...[/b]
Med frågan
DECLARE @rader int
EXECUTE hamtaBilderVy @rader output, @StartRad=10, @SlutRad =15, @userID='e70436aa-073d-483c-ac4c-b7c3ab1ab386'
Får jag ut mina rader. När jag kollar under fliken Message i Microsoft SQL Server Management Studio får jag bara fram (5 row(s) affected) :OO