webForumDet fria alternativet

Fel!!!

ASP

10 svar · 208 visningar · startad av tomas21

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

Hejsan allihopa detta är mitt första inlägg här. Jag hoppas att någon svarar på mitt inlägg.

Jag har gjort en meny med en massa länkar. När man klickar på meny länkarna får man upp en annan sida som listar upp rubriker tillhörande just den meny länken.
Om säg första meny länken har rubriker i databasen då går allting perfekt men däremot när den specifika meny länken inte har några rubriker i databasen så får jag upp detta felmedelande:

-------------------------------------------------------------------------------
ADODB.Recordset error '800a0bcd'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
-------------------------------------------------------------------------------

Jag testade med att lägga in denna if sats:

<%
If RecSet.EOF Then
Response.Write"Denna meny länk har inga rubriker"
Else
.
.
.
.
Lista alla rubriker tillhörande denna meny länk
.
.
.
End If
%>

Men jag får samma felmedelande.
Jag antar att medelandet innebär att den inte hittar några poster i databasen tillhörande den meny länken. Men ifsatsen borde funka tycker man.

MVH / Tomas

Medlem sedan sep. 2002538 inlägg
#2

Koden skall fungera, men ge oss lite mera kod att titta på kan det hända att du använder RecSet innan du kollar om den är tom?

Välkommen förresten!

Medlem sedan mars 20023 561 inlägg
#3

Visa all relevant kod istället så kanske det är lättare att komma på vad som ställer till det.

/r: Ajajaj, jag var lite sen... ;)

Medlem sedan feb. 2003130 inlägg
#4

Ok här är koden:

<!-- #include file="adovbs.inc" -->

<!-- Databas Koppling Start -->
<%
pg = TRIM( Request( "pg" ))
if pg = "" then pg = 1

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../secret/secret.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
%>

<!-- Databas Koppling Slut -->

<!-- Loopa igenom länkarna -->

<%
SQLSATS = "SELECT * FROM HuvudRubriker WHERE LF_ID = " & Request.QueryString("id") & " "
RecSet.Open SQLSATS, Connect, adOpenStatic, adLockOptimistic
%>

<% If RecSet.BOF Then %>

<font face="Verdana" size="1">Denna sektion har för tillfället inga artiklar inlagda!!!</font>

<% End If %>

<%
Do Until RecSet.EOF
%>

<%=RecSet("LF_Nummer")%> <%=RecSet("LF_Text")%><br><br>

<%
RecSet.MoveNext
Loop
RecSet.Close
%>

<%
SQLSATS = "SELECT * FROM Artiklar WHERE LA_LFID = "& Request.QueryString("id") & " ORDER By LA_Id"
RecSet.Open SQLSATS, Connect, adOpenStatic, adLockOptimistic

RecSet.PageSize=16
RecSet.AbsolutePage=pg

While NOT RecSet.EOF AND rowCount < RecSet.PageSize
rowCount = rowCount + 1
%>

<% If RecSet("LA_Visual") = False Then

Response.Write ""

Else

%>

<%=RecSet("LA_LFNummer")%>.<%=RecSet("LA_Id")%> <a href="artikel.asp?lankid=<%=Request.QueryString("id")%>&artid=<%=RecSet("LA_Id")%>" target="hoverst"><%=RecSet("LA_Rubrik")%></a><br>

<% End If %>

<%
RecSet.MoveNext
WEND
%>

<% If RecSet.PageCount > 1 Then %>
<br><b>Gå till sidan:</b>

<% For i = 1 to RecSet.PageCount
If i <> cINT( pg ) THEN
%>
<a href="la.asp?id=<%=Request.QueryString("id")%>&cat=<%=Server.URLEncode( cat )%>&pg=<%=i%>"><%=i%></a> 
<% Else %>
<b><%=i%></b> 
<% End If %>
<% Next %>
<% End If %>

Medlem sedan feb. 2003130 inlägg
#5

Glömde tillägga att den säger att felmedelandet gäller på rad 55 som är den rad där det står :

RecSet.AbsolutePage=pg

Medlem sedan sep. 2002538 inlägg
#6

Tokfel i mitt inlägg.

Medlem sedan feb. 2003130 inlägg
#7

OK nu har jag lärt mig hur man infogar kod i detta forum:

<%End If%>

<%
Do until RecSet.EOF
If RecSet("Ipnr") = Request.Servervariables("REMOTE_ADDR") Then
%>
Medlem sedan mars 20023 561 inlägg
#8

Nä, skriv så här:

<!-- #include file="adovbs.inc" --> 

<!-- Databas Koppling Start --> 
<% 
pg = TRIM( Request( "pg" )) 
if pg = "" then pg = 1 

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../secret/secret.mdb") 
Set RecSet = Server.CreateObject("ADODB.Recordset") 
%> 

<!-- Databas Koppling Slut --> 

<!-- Loopa igenom länkarna --> 

<% 
SQLSATS = "SELECT * FROM HuvudRubriker WHERE LF_ID = " & Request.QueryString("id") & " " 
RecSet.Open SQLSATS, Connect, adOpenStatic, adLockOptimistic 

If RecSet.Eof Then %> 

<font face="Verdana" size="1">Denna sektion har för tillfället inga artiklar inlagda!!!</font> 

<% Else

Do Until RecSet.EOF 
%> 

<%=RecSet("LF_Nummer")%> <%=RecSet("LF_Text")%><br><br> 

<% 
RecSet.MoveNext 
Loop 
RecSet.Close 

End If

SQLSATS = "SELECT * FROM Artiklar WHERE LA_LFID = "& Request.QueryString("id") & " ORDER By LA_Id" 
RecSet.Open SQLSATS, Connect, adOpenStatic, adLockOptimistic 

RecSet.PageSize=16 
RecSet.AbsolutePage=pg 

While NOT RecSet.EOF AND rowCount < RecSet.PageSize 
rowCount = rowCount + 1 

If RecSet("LA_Visual") = False Then 

Response.Write "" 

Else 
%> 

<%=RecSet("LA_LFNummer")%>.<%=RecSet("LA_Id")%> <a href="artikel.asp?lankid=<%=Request.QueryString("id")%>&artid=<%=RecSet("LA_Id")%>" target="hoverst"><%=RecSet("LA_Rubrik")%></a><br> 

<% End If

RecSet.MoveNext 
WEND 

If RecSet.PageCount > 1 Then %> 
<br><b>Gå till sidan:</b> 

<% For i = 1 to RecSet.PageCount 
If i <> cINT( pg ) THEN 
%> 
<a href="la.asp?id=<%=Request.QueryString("id")%>&cat=<%=Server.URLEncode( cat )%>&pg=<%=i%>"><%=i%></a>  
<% Else %> 
<b><%=i%></b>  
<% End If 
Next 
End If %>

Sedan så är det nog i ditt fall rekommenderat att använda Response.Write istället för att hålla på att växla context hela tiden.

Medlem sedan feb. 2003130 inlägg
#9

Josef det fungerar inte jag får upp felmedelandet:

ADODB.Recordset error '800a0bcd'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

Som gäller för samma rad alltså

RecSet.AbsolutePage=pg

Medlem sedan feb. 2003130 inlägg
#10

Notera här att det inte finns i detta fall några poster tillhörande meny länken i tabellen artiklar. Alltså den letar i tabellen artilkar och den hittar inget tillhörande det id numret då ger den det felmedelandet.

Medlem sedan feb. 2003130 inlägg
#11

Jag löste det till slut.
Felet var att jag skrev if satsen efter den första SQL satsen då använde det recordset som den SQL satsen skapade. Men genom att lägga den efter den andra SQL satsen där listingen av artiklarna låg då gick det bra.

Tack för hjälpen allihop.

MVH/ Tomas

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