Fel på koden, eller bara mig?

ASP

8 svar · 207 visningar · startad av saw

Medlem sedan mars 20011 880 inlägg
Trådstart#1

Jag stirrar frusterande på den här snutten, hittar inget fel, men den visar bara dom tre punkterna.
If LEN(RS("Inlagg"))> 80 THEN
Response.Write Left(RS("Inlagg"),80) & "..."
Response.Write "<BR><A HREF=""forhand.asp?ForumId=" & RS("ForumId") & """>"&_
"<STRONG>Läs mera.</STRONG></A>"

Else
Response.Write RS("Inlagg")

End If
Vad missar jag?

Medlem sedan apr. 2001147 inlägg
#2

Vad får du för felmedelande?

Medlem sedan mars 20011 880 inlägg
#3

Det är just det....
Jag får inget felmedelande, men den skriver bara ut tre punkter.
Tänkt är, att om rs("Inlagg") är mera än 80 tecken, så skall dom första tecknen skrivas ut, och därefter tre punkter. Sen skall då länken synas, så att man kan gå till nästa sida och läsa resten.
Jag tror att det är något simpelt som jag har missat, men jag ser det inte nu...

Medlem sedan okt. 20005 273 inlägg
#4

jag testade din kod så här

strInlagg = "nu så ska vi se om jag kan komma på 80 sst tecken annars får jag väll skriva skit hela tiden"
If LEN(strInlagg)> 80 THEN
	Response.Write  Left(strInlagg,80) & "..."
	Response.Write "<BR><A HREF=""forhand.asp?ForumId=" & strInlagg & """>"&_
	"<STRONG>Läs mera.</STRONG></A>"

	Else
	Response.Write strInlagg
End If

och den funkade perfekt...så jag tror nog att det är nåt fel på RS("inlagg").... :)
om du skriver

Response.write TypeName(RS("inlagg")

vad får du då ?

Medlem sedan mars 20011 880 inlägg
#5

Oj det var ett trix jag aldrig har set.

Medlem sedan mars 20011 880 inlägg
#6

Oj det var ett trix jag aldrig har set.

Medlem sedan mars 20011 880 inlägg
#7

Oj det var ett trix jag aldrig har sett.
Jag får "Field".
Skriver jag ut LEN så får jag fram längden åxå, och den är OK.
Vad som hände nu, när jag la den i en variabel, så skrev den ut HELA texten.
Jag får alltså inte den att reagera på längden (huga av efter 80 tecken).

Så här ser det ut nu:
strText=RS("Inlagg")
'Response.write LEN(strText)
If LEN(strInlagg)> 80 THEN
Response.Write Left(strInlagg,80) & "..."
Response.Write "<BR><A HREF=""forhand.asp?ForumId=" & strInlagg & """>"&_
"<STRONG>Läs mera.</STRONG></A>"
Else
Response.Write strText
End If

Vad tror ni?

Medlem sedan dec. 200012 464 inlägg
#8

Du lägger texten i strText men du kollar längden på strInlägg

strText=RS("Inlagg")
'Response.write LEN(strText)
If LEN(strInlagg)> 80 THEN

Grundproblemet är nog att du har en datatyp vars maxlängd är större än 8000 t.ex text i SQL server eller Memo i Access. Dessa måste hanteras speciellt via ADO. T.ex så fungerar det inte att referera till recordsetet flera gånger utan man måste flytta värdet till en lokal variabel. Om du har SQL server så kanske det räcker med att använda varchar(8000) istället.

Medlem sedan mars 20011 880 inlägg
#9

Tack LarsG.
Jag undrar om det är så lyckat att försöka koda mittinatten????
:)

254 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)