Jeg har en webapplikation hvor en række brugere skal have adgang
til at redigere deres egne dokumenter. Selve login-proceduren
ligger i asp, men som en ekstra sikkerhed vil jeg gerne tjekke om
en bruger har lov til at udføre en handling på et dokument direkte
i databasen.
Til det oprettede jeg følgende sp:
'***************************************************
CREATE PROC UserTjek_sp (@userID int, @dokID int)
AS
IF NOT EXISTS
(SELECT 't'
FROM dokumenter
WHERE dokumentID = @dokID
AND ejerID = @userID)
RAISERROR(
'Adgangsfejl!
Enten eksisterer dokumentet ikke eller også har brugeren ikke
adgang til at redigere det pågældende dokument.
Oplysninger vedr. fejlen: BrugerID: %d, DokumentID: %d',
16, 1, @userID, @dokID)
'***************************************************
Den kaster en fejl hvis det er en ugyldig bruger/dokument-
kombination - og den virker sådan set fint nok.
Men hvis jeg skal have stoppet sp'en skal jeg efterfølgende tjekke
værdien af @@ERROR. Er det muligt at få sp'en stoppet så snart der
er en @@ERROR-værdi større end nul?
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO -
www.fiduso.dk)
I ovenstående tekst benyttes nyt komma
(rettelser modtages gerne i dk.kultur.sprog)