21. august 2006 - 21:12Der er
7 kommentarer og 1 løsning
hjælp ang databasefelt og asp
Jeg har lavet et felt(favoritter) i min tabel(brugere), feltet er af typen tekst og indeholder(når brugeren vælger favoritbilleder) en kommasepareret liste med links til de valgte billeder. Når brugeren oprettes er feltet selvsagt tomt(der indsættes ikke noget), og mit problem er så følgende:
Jeg har koden: if len(rs("favoritter")) = 0 then response.write "Ingen favoritbilleder" else set rs2 = server.CreateObject("adodb.recordset") arrFavoritter = split(rs("favoritter"), ",") for i = 0 to (Ubound(arrFavoritter)-1) osv.
Mener selv at min if-sætning burde være opfyldt hvis ikke der er noget i feltet?
Anyway så forsøgte jeg selvfølgelig at fejlfinde lidt selv: if len(rs("favoritter")) > 0 then response.write "hmm den er større?" elseif len(rs("favoritter")) = 0 then response.write "wee 0" elseif len(rs("favoritter")) < 0 then response.write "under 0? weird" elseif len(rs("favoritter")) = NULL then response.write "længden er NULL" else response.write "fuuuuck ingen værdi" end if
og gæt hvad den skrev?....Jep "Fuuuuck ingen værdi"
Det jeg godt kunne tænke mig at vide er hvordan pokker et felt kan være uden værdi når jeg har tjekket for både NULL og len()=0 :S
- forvandler værdien af et tomt felt (NULL) til en streng med længde 0 (""). Det er ikke lige til at se det med menneskeøjne, men det er faktisk to vidt forskellige ting. Split kan ikke lide NULL, og det er det VBScript-fortolkeren brokker sig over. Med "" går det meget bedre.
Din lange if-sætning burde i øvrigt have set sådan her ud:
if len(rs("favoritter")) > 0 then response.write "hmm den er større?" elseif len(rs("favoritter")) = 0 then response.write "wee 0" elseif len(rs("favoritter")) < 0 then response.write "under 0? weird" elseif rs("favoritter") = NULL then response.write "indholdet er NULL" else response.write "fuuuuck ingen værdi" end if
du har nok ret...if rs("favoritter") is NULL then ville efter al sandsynlighed have forhindret problemet...Det er ikke sådan når man har holdt en lidt for lang pause fra asp'en og så starter på et projekt som jeg har gjort :)
En anden måde at eliminere problemet, ville være at lægge den tomme streng ind i de tomme felter - i stedet for at have værdien NULL stående i dem.
Synes godt om
Ny brugerNybegynder
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.