FirehMedlem sedan jan. 2003173 inlägg
Nu tänker jag en gång för alla gå till botten med detta som irriterar mig så extremt. Om jag inte har något skrivet i ett fält, så har den värdet NULL. Bra så långt... När jag däremot behöver läsa ut värdet i fältet och kolla om det är NULL eller om det innehåller data, så blir det knäppt. Jag kör följande kod:
If rs1("Dit_kl") <> "" Then Dit_kl = rs1("Dit_kl") Else Dit_kl="Inget"
Det genererar följande fel oavsett om det är NULL eller inte:
(0x80020009)
Undantag inträffade.
Detta har jag alltid avhjälpt genom att läsa in värdet i en variabel först, för av nån korkad anledning går det inte att läsa samma värde 2 gånger. Problemet kommer då när man läser in värdet i variabeln Dit_kl och det är NULL. Då vet inte jag hur man kollar om det är NULL. För om jag kör detta:
If rs1("Dit_kl") = "" Then Nåt Else Nåt
Så kör den koden efter Else. Dvs det är NULL, men "" är inte NULL, men hur kollar jag om det är NULL?
Tack på förhand!
LarsGMedlem sedan dec. 200012 465 inlägg
Dit_kl = rs("dit_kl")
if isnull(Dit_kl) then
Flyttas från Mysql
K@llenMedlem sedan mars 20032 654 inlägg
En tom sträng är inte det samma som null. Du kan kolla det med en funktion i vb-script:
if isnull(rs1("Dit_kl")) then
' jo, den var null
end if
eller direkt i sql-frågan
select * from tabellen where Dit_kl is not null
Hämtar alla poster där Dit_kl inte är null.
FirehMedlem sedan jan. 2003173 inlägg
Tack båda två!
Att plocka ut direkt i frågan kunde jag.
Men här är det inte aktuellt att göra det.
Det verkar fungera.
Tackar!
Engine^Medlem sedan dec. 20002 861 inlägg
VBScript och null är irriterande. null finns inte i VBS.
Med tanke på den If-sats du hade i början så är det alltid "bättre" (snabbare) att undersöka om en sträng är tom med
If Len([i]sträng[/i]) = 0 Then ...
Nexus86Medlem sedan okt. 20022 683 inlägg
Engine^ skrev:
VBScript och null är irriterande. null finns inte i VBS.
Klart det finns. Det heter bara inte null. För strängar heter det vbNullString och för objekt Nothing.
Ex:
If [b][i]sträng[/i][/b] = vbNullString Then ' Samma sak som [i]If sträng = "" Then[/i]
' Strängen är tom
End If
Dim FS
Set FS = CreateObject("Scripting.FileSystemObject")
If FS Is Nothing Then
' FS är av typen Object men inte satt som referens till något
End If
Set FS = Nothing
r/ Lite kommentarer
Engine^Medlem sedan dec. 20002 861 inlägg
Jag håller väl med dig en aning...
If sträng = vbNullString
Är detsamma som
If Len(sträng) = 0
Jag vidhåller att null inte finns i VBS. Nu menar jag inte att det inte sker på samma sätt i andra språk utan mer att VBS är aningen tvetydigt på den punkten.
@ndersMedlem sedan juni 200026 914 inlägg
Engine^, jag förstår inte riktigt vad du menar.
strNull = Null
If IsNull(strNull) then response.write "Jo, den är null?"
Len(Null) är dessutom inte noll.
Engine^Medlem sedan dec. 20002 861 inlägg