Avatar billede Laitings Nybegynder
09. november 2005 - 10:28 Der er 3 kommentarer og
1 løsning

hvis fejl i databasekald

Jeg har en ASP-kode som kan risikere at kalde nogle poster fra en database som ikke eksistere. Hvordan laver jeg en if-then sætning som tager højde for dette.

Jeg har prøvet med:

    if rs6("Beskrivelse") <> "" then
    Response.Write left(rs6("Beskrivelse"),100) &"..."
    end if


-men det funker ikke?

Håber på hjælp!

-M
Avatar billede Laitings Nybegynder
09. november 2005 - 10:40 #1
Den blev løst med

On Error Resume Next i toppen af dokumentet

-M
Avatar billede softspot Forsker
09. november 2005 - 11:15 #2
Vær dog opmærksom på at du risikerer sideeffekter ved brugen af on error resume next (det er en konstruktion som skal bruges med omtanke).

Du kan lave dit check for tomme værdier således:

if (rs6("Beskrivelse") & "") <> "" then
  Response.Write left(rs6("Beskrivelse"),100) &"..."
end if

Når du sammensætter en null-værdi med en tom streng, bliver det til en streng som kan checkes...
Avatar billede Laitings Nybegynder
09. november 2005 - 11:18 #3
Takker! Det lyder foruftigt!
Avatar billede softspot Forsker
09. november 2005 - 11:31 #4
Mht. sideeffekter, så prøv f.eks. denne stump kode:

on error resume next
if left("",-1) = "test" then
  response.Write "left("""",-1) = ""test"" ("&err.number & "/" & err.Description&")"
else
  response.Write "left("""",-1) != ""test"" ("&err.number & "/" & err.Description&")"
end if

Her ville du vel gerne have at resultatet der udskrives er left("",-1) != "test", men det bliver ikke resultatet, for left kaldt med en negativ længde resulterer i en fejl 5 (Invalid procedure call or argument) og så tvinger on error resume next, fortolkeren ned i næste linie (som er if-delen af forgreningen, dvs. den forkerte).

On Error Resume Next betyder altså det som der står: "NEXT LINE" bogstaveligt talt :)
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
Kurser inden for grundlæggende programmering

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