Avatar billede eldaria Nybegynder
14. marts 2005 - 23:04 Der er 8 kommentarer og
1 løsning

Hvordan får jeg Case til at virke?

Hvofor virker ikke dette?

Case Upper(@strCommand) =
    When 'LOG' Then EXEC spLOG
    When 'RELOG' Then EXEC spRELOG
    When 'SO' Then EXEC spSO
Else EXEC spSomethingElse
End

Skal lige nævnes at jeg er vandt til at programere i Visual Basic, så jeg er på ukente vande med T-SQL. :-)
Avatar billede arne_v Ekspert
14. marts 2005 - 23:09 #1
= skal vel ikke være der ?
Avatar billede eldaria Nybegynder
14. marts 2005 - 23:18 #2
Får samme Fejl:
Incorrect syntax near the keyword 'Case'
Incorrect syntax near the keyword 'End'
Avatar billede arne_v Ekspert
14. marts 2005 - 23:19 #3
Hvordan ser konteksten ud ?
Avatar billede eldaria Nybegynder
14. marts 2005 - 23:37 #4
Kontekst?
Mener du hele Error output, eller hele koden?
Avatar billede janus_007 Nybegynder
14. marts 2005 - 23:44 #5
Du kan ikke pludselig vælge at eksekvere en stored procedure hvis noget falder indenfor eller udenfor din case!

For at løse den slags skal du bruge en IF eks.vis:

if upper(@strCommand) = 'LOG'
exec spLog
else if upper(@strCommand) = 'RELOG'
.... osv...
Avatar billede eldaria Nybegynder
14. marts 2005 - 23:52 #6
Ok, min work around code ser således ud, og den virker, jeg håbede bare på at kunne bruge Case istedet da det i Visual basic er hurtiger end at bruge If.
Desuden er det også mindre kode.

Den her virker.

If Upper(@strCommand) = 'LOG' or Upper(@strCommand) = 'RELOG' or Upper(@strCommand) = 'SO'
Begin
    If Upper(@strCommand) = 'LOG'
    Begin
        EXEC spLog
    End
    If Upper(@strCommand) = 'RELOG'
    Begin
        EXEC spReLog
    End
    If Upper(@strCommand) = 'SO'
    Begin
        EXEC spSO
    End
End
Else
Begin
    EXEC spSomethingElse
End
Avatar billede janus_007 Nybegynder
15. marts 2005 - 09:09 #7
Ja det er også underligt at case ikke kan den slags, men den anvendes altså kun til ekspressioner.
Avatar billede janus_007 Nybegynder
15. marts 2005 - 09:10 #8
Forresten, så behøver du ikke en begin-end når din action kun indeholder en linje!!
Avatar billede eldaria Nybegynder
15. marts 2005 - 11:43 #9
Ok, takker..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester