DanneStMedlem sedan feb. 20041 327 inlägg
Hej!
Får detta felmeddelande:
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'HTMLEncode'
/index.asp, line 26
Raden 26 är:
<%=Replace(Server.HTMLEncode(rs("welcome")),vbCrLf,"<br />")%>
Jag vet att felmeddelandet brukar beror på att man försöker använda en tom recset, vilket också är vad som händer. Det är nämligen så att senare i index.asp-koden så ska ett antal nyheter loopas fram, men nu har jag tagit bort alla poster i den tabellen och hoppades få fram en text som säger att "Inga nyheter inlagda!". Tji fick jag (men lägger jag in en nyhet så funkar allt så fint så...). Så här ser den koden ut (finns på en includad sida):
<%If RS_NyhRub.EOF Then%>
<table cellpadding="1" cellspacing="0" border="0">
<tr>
<td align="left">Inga nyheter inlagda!</td>
</tr>
<%Else%>
Vad jag inte får grepp om är varför det inte kraschar på raden där denna funktion anropas, utan på en funktion som jag vet innehåller data.
Hilfe bitte!
TravoniMedlem sedan okt. 20041 538 inlägg
Lägg in en tom sträng så fixar det sig.
Server.HTMLEncode(rs("welcome") &"")
Ta för vana att göra det när du använder Server.HTMLEncode. :)
@ndersMedlem sedan juni 200026 914 inlägg
Om du ska skriva ut poster från ett recordset som kan vara tomt får du lägga det i else-delen i din EOF-kontroll.
if RS_NyhRub.EOF then
' inga poster
else
response.write server.htmlencode (.....)
end if
DanneStMedlem sedan feb. 20041 327 inlägg
Travoni skrev:
Lägg in en tom sträng så fixar det sig.
Server.HTMLEncode(rs("welcome") &"")
Ta för vana att göra det när du använder Server.HTMLEncode. :)
Funkar inte. Fick felmeddelandet error '80020009'...
DanneStMedlem sedan feb. 20041 327 inlägg
@nders skrev:
Om du ska skriva ut poster från ett recordset som kan vara tomt får du lägga det i else-delen i din EOF-kontroll.
if RS_NyhRub.EOF then
' inga poster
else
response.write server.htmlencode (.....)
end if
Mjo, men det har jag ju gjort...tror jag...
Den rs som är tom ligger i en fil som jag includar. I den filen är koden som följer:
<%
NyhetPerSida = 3
URL = "../index.asp"
db = Server.MapPath("db/db.mdb")
Width = "250"
Set RS_NyhRub = Server.CreateObject("ADODB.Recordset")
Sidan = Request.QueryString("sida")
If Sidan = "" then
sida = 1
Else
sida = Sidan
End If
With RS_NyhRub
.CursorLocation = 3
.CacheSize = NyhetPerSida
End With
SQL_NyhRub = "Select * From news Order By id desc"
RS_NyhRub.Open SQL_NyhRub, Conn_NyhRub%>
<%If RS_NyhRub.EOF Then%>
<table cellpadding="1" cellspacing="0" border="0">
<tr>
<td align="left">Inga nyheter inlagda!</td>
</tr>
<%Else%>
<table cellspacing="0" border="0" width="100%">
<%
x = 0
RS_NyhRub.MoveNext
With RS_NyhRub
.MoveFirst
.PageSize = NyhetPerSida
.AbsolutePage = sida
End With
Sidor = RS_NyhRub.PageCount
x = 0
Do While Not RS_NyhRub.EOF And x < RS_NyhRub.PageSize
%>
<tr>
<td width="100%"><a href="visa_nyhet.asp?ID=<%=RS_NyhRub("ID")%>"><%=Server.HTMLEncode(RS_NyhRub("rubrik") &"")%></a> (<%=FormatDateTime(RS_NyhRub("datum"),2)%>)</td>
</tr>
<%
x=x+1
RS_NyhRub.MoveNext
Loop
RS_NyhRub.Close
End If
If Sidor > 1 Then
%>
<tr>
<td valign="top" colspan="2" align="left">Arkiv:
<%
For Sid = 1 To Sidor
If (Int(Sid)) = (Int(sida)) Then%>[<%=Sid%>]<%Else%> <a href="<%=URL%>?sida=<%=Sid%>"><%=Sid%></a> <%End If
Next%>
</td>
</tr>
<%
End If
%>
</table>
DanneStMedlem sedan feb. 20041 327 inlägg
Någon som kan ge mig tips på hur jag kommer förbi detta?
DanneStMedlem sedan feb. 20041 327 inlägg
Det var då rackarns vad tyst och ensamt det blev i denna tråd... *snyft*
doggelitoMedlem sedan juni 20003 100 inlägg
Vilken kod gäller? :q
I ditt första inlägg skriver du: Server.HTMLEncode(rs("welcome"))
Sen skriver du: Server.HTMLEncode(RS_NyhRub("rubrik") &"")
Så, vilken rad genererar egentligen felet?
Tittar du på rätt ställe i rätt fil?
Om felet genereras på: "rs" så måste du ange:
if not rs.eof then
blabla
end if
DanneStMedlem sedan feb. 20041 327 inlägg
Ledsen för mitt sena svar på din fråga, men här kommer den:
Det verkar som att det inte spelar någon roll. Är någon av tabellerna (jag har andra tabeller till andra funktioner i samma db) i databasen tom så får jag detta felmeddelande...
Lägger jag in &"" så kommer det senare felmeddelandet (error '80020009').
doggelitoMedlem sedan juni 20003 100 inlägg
Känner mig inte riktigt uppdaterad på vilket fel du får nu.
Du kan väl slänga in din kod igen och säga vilken rad du får fel på.
Är det att du använder just htmlencode så får du kanske fel om posten är null i databasen, istället för att fulhacka in &"" på varje så kan du istället köra en go å fin function! :)
Response.Write(encode(RS_NyhRub("rubrik")))
Function encode(str)
If len(str) = 0 Or isNull(str) Then Exit Function
encode = Server.HTMLEncode(str)
End Function
DanneStMedlem sedan feb. 20041 327 inlägg
Mja, kanske det!
Har fått tipset om att lägga in en funktion i en annan tråd som jag tänkte försöka prova ikväll. Får jag den att funka kan jag ju testa det på detta problem åxå!
Testar och återkommer!