webForumDet fria alternativet

Varför fungerar inte detta???

ASPur ASP

3 svar · 326 visningar · startad av Oputres

Medlem sedan feb. 2004333 inlägg
Frågan#1

Allå!

Jag vill att koden först kollar så att det finns en rad. Men då rader kan finnas på medlemens AnvId utan att det finns någon information i kolumnen Presentation vill jag även kolla detta. Därav koden:

<%
Set RSTexter = Connect.Execute("Select * From Texter Where AnvId = '" & AnvId & "';")

...

If Not RSTexter.EOF Then
  If RSTexter("Presentation") <> "" Then
    strPresentationText = Visa(Server.HTMLEncode(RSTexter("Presentation")))
    Response.Write strPresentationText
  Else
    Response.Write "Det finns ingen post"
  End If
End If %>

Nu finns det text i kolumnen Presentation men den vägrar visa det när jag lägger till den andra If-satsen. Varför??? När jag har HTMLEncode visar den följande eftersom jag inte får fram något i strPresentationsText:
Inkompatibla typer: 'HTMLEncode'

Helst av allt skulle jag vilja slå ihop kontrollen till något liknande:

If Not RSTexter.EOF And Not Len(RSTexter("Presentation")) = 0 Then
    strPresentationText = Visa(Server.HTMLEncode(RSTexter("Presentation")))
    Response.Write strPresentationText
Else
    Response.Write "Det finns ingen post"
End If %>

Men varför funkar det inte? :(

Medlem sedan maj 200591 inlägg
#2

Sådana if-satser är alltid lite luriga. Ibland hjälper det om man lägger till ett .value, alltså RSTexter("Presentation").value, men en annan metod som brukar funka är att testa längden på datan. If len(RSTexter("Presentation"))>0 then....

Medlem sedan feb. 2004333 inlägg
#3

Löste det så här:

If Not RSTexter.EOF Then
  strPresentationText = RSTexter("Presentation")
  If Len(strPresentationText)>0 Then
    Response.Write Visa(Server.HTMLEncode(strPresentationText))
  End If
End If %>

Det verkar som om RSTexter("Presentation") försvann om man inte la den i en variabel på direkten. Jag har för mig att jag läste någonstans att en PM-ruta bara kan laddas en gång. Någon som kan bekräfta?

Medlem sedan juni 200032 969 inlägg
#4

Någon som kan bekräfta?

Ja.

Dessutom är VBScript fånigt. Du får inte ha if-satsen som du hade den på en rad, för då får du ett felmeddelande om recordsetet är EOF. Trots att första villkoret går åt pipan evalueras hela raden, och då kommer felmeddelande när du försöker kolla längden på fältet presentation.

mvh

139 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)