Vad är problemet?
vad menar du med
om den senaste inlagda posten har värdena @GetUserName och @RetUser
?
4 svar · 199 visningar · startad av Nson
Jag sliter mitt hår för att få till en rutin som gör följande.
I databasen [dbo].[Users.Logs] om den senaste inlagda posten har värdena @GetUserName och @RetUserName i så fall skall vi inte göra något. Men om så är fallet då skall vi sätta in data.
Slänger med den SP'n som jag använder i dag. Den funkar inte alls då TOP 1 alltid blir sann när man väl besökt en sida en gång.
create procedure portal_SelectProfile
(
@GetUserName nvarchar(50),
@RetUserName nvarchar(50)
)
AS
BEGIN
Declare @LatestVisitor nvarchar(50)
Set @LatestVisitor = (SELECT TOP 1 Visitor FROM [dbo].[Users.Logs] WHERE Owner = @GetUserName ORDER BY ItemDate DESC)
-- Hämta data att visa
SELECT
Book,
Movie,
Music,
Http,
Signature,
Presentation
FROM
[Users.Profile]
WHERE
UserName = @GetUserName
-- Uppdatera senaste besökarna
if not @GetUserName = @RetUserName
begin
-- Uppdatera antal sidvisningar
UPDATE [Users.Profile] SET
Displays = Displays + 1
WHERE UserName = @GetUserName
IF @LatestVisitor IS NULL
begin
INSERT INTO [dbo].[Users.Logs]
(
Visitor,
Owner
) VALUES (
@RetUserName,
@GetUserName
)
end
end
END
GO
Mvh Nson
Vad är problemet?
vad menar du med
om den senaste inlagda posten har värdena @GetUserName och @RetUser
?
Jag skall använda den för att skapa en databas med dom senaste besökarna på en profil sida. Men jag vill inte att en användare skall ladda om och ladda om sidan och på så sätt bara sätta sig själv i listan. Så vad jag vill att den skall göra är att den går in o ser i databasen om den senatse användaren i databasen är den samma som den som tittar nu. I så fall skall den inte göra något annars skall den skriva in GetUser och RetUser i databasen.
Vet i fan om det blev så mycket klokare, men jag tror du vet vad jag menar.
När jag kör min TOP så kommer den ju alltid att bli TRUE om användaren någonsinn varit inne på en användares sida. Jag vill bara se till så att han inte är den absolut senaste...
if not exists (select * FROM [dbo].[Users.Logs]
WHERE Owner = @GetUserName
and itemDate = (select max(itemDate) from [dbo].[Users.Logs] ))
begin
INSERT INTO [dbo].[Users.Logs]
(
Visitor,
Owner
) VALUES (
@RetUserName,
@GetUserName
)
end
Du är en klippa som vanligt...