webForumDet fria alternativet

Invalid use of null med InStrRev

ASP

10 svar · 462 visningar · startad av Janspeed

Medlem sedan jan. 2001510 inlägg
Frågan#1

Varför får jag ett felmeddelenade som säger:

Microsoft VBScript runtime error '800a005e'

Invalid use of Null: 'InstrRev'

/login/login.asp, line 67

If Len(rs("Infotext")) > 150 Then
  Response.Write Left(rs("Infotext"), InstrRev(Left(rs("Infotext"), 150), " ")) & _
  "<br><a href=""visa_info.asp?""" & rs("NID") & ">Läs mer här >>></a>"
Else
  Response.Write rs("Infotext") & "<br>"
End If

Har letat runt lite men inte hittat nått bra svar. Nån som kan hjälpa mig?

Medlem sedan dec. 20003 887 inlägg
#2

Ditt recordset rs innehåller förmodligen inga poster.

Medlem sedan jan. 20013 341 inlägg
#3

InstrRev(Left(rs("Infotext") & " ", 150), " "))

Medlem sedan jan. 2001510 inlägg
#4

Nä, det trodde inte jag heller men kör jag en Response.Write rs("Infotext") så nog fan kommer det ut en massa text. (skrev en djäkla massa bara för att ha nått att testa med. :)

Det lustiga är att den inte verkar vilja känna av när jag kör InStrRev för att hitta mellanslagen. Tror kanske det är den som returnerar null. Men jag har ingen aning om varför och vad jag ska göra åt det? :/

Medlem sedan jan. 20013 341 inlägg
#5
If rs("Infotext")<>"" Then
If Len(rs("Infotext")) > 150 Then
  Response.Write Left(rs("Infotext"), InstrRev(Left(rs("Infotext"), 150), " ")) & _
  "<br><a href=""visa_info.asp?""" & rs("NID") & ">Läs mer här >>></a>"
Else
  Response.Write rs("Infotext") & "<br>"
End If
End If
Medlem sedan jan. 2001510 inlägg
#6

InstrRev(Left(rs("Infotext") & " ", 150), " "))

Sorry missa ditt inlägg aleborg har du lust att förklara lite nogrannare?

Medlem sedan jan. 2001510 inlägg
#7

Asch... du är ju för snabb för mig. ;)

Medlem sedan jan. 2001510 inlägg
#8

If rs("Infotext")<>"" Then

Hmm... när jag testar ditt exempel aleborg så visar den inte infotexten alls?

Men kör jag bara en Response.Write så visar den massor?

Kan det ha med att den är av typen Text från databasen?

Medlem sedan dec. 200012 464 inlägg
#9

Just det. Textkolumner kan bara läsas en gång från ett recordset.

Tilldela värdet till en lokal variabel innan du börjar meka,

Medlem sedan dec. 20003 887 inlägg
#10
Dim strInfo

strInfo = Nz(rs("Infotext"), "")

If strInfo <> "" Then
  If Len(strInfo) > 150 Then
    Response.Write Left(strInfo, InStrRev(strInfo, " ", 150)) & _
    "<br><a href=""visa_info.asp?""" & rs("NID") & ">Läs mer här >>></a>"
  Else
    Response.Write strInfo & "<br>"
  End If
End If
Medlem sedan jan. 2001510 inlägg
#11

Jaha? Kan de det? Det förklarar ju en del problem jag haft tidigare.

Tack för hjälpen allihop man lär så länge man lever. :)

261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)