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):
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>
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').
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
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!
282 ms totalt · 4 externa anrop · v20260731065814-full.1b2494f0