webForumDet fria alternativet

Jag ger upp snart! :)

ASP

8 svar · 434 visningar · startad av L1nk

Medlem sedan jan. 200232 inlägg
Frågan#1

Tjo!
Har ett bild arkiv där bilderna är uppdelade i två grupper. En för stående bilder
å en för liggande. Har en paging funktion som delar upp dem på olika sidor á 4
på varje ... allt funkar som det ska till det att jag kommer till sista sidan då
jag får detta felmeddelandet:

---------------------------------------------------------------
Error Type:
ADODB.Field (0x80020009)
Either BOF or EOF is True, or the current record has been deleted.
Requested operation requires a current record.
/area69/bildarkiv2.asp
----------------------------------------------------------------

Det luriga är att min do sats som loopar ut bilderna är formad på följande sätt :

Do While Not oRs2.EOF And Count2 < oRs2.PageSize

Vilket borde vara nog för att applikationen ska vet om det är sista posten eller inte.

Jag hoppas innerligt att jag kan få lite hjälp med detta
problemet ... för som det ser ut nu kommer jag aldrig att klara det på egen hand :)

Tack på förhand / Linus


     <%

	If Request.QueryString("status") = "show" AND Request.QueryString("storlek") = 1 Then
	
			Dim curpage		'Säger vilken sida du befinner dig på.
			Dim oRs2		'Sidans andra recordset, där av namnet oRs2.
			Dim strSQL2		'Sidan andra SQL-sträng, där av namnet oSQL2.
			Dim Storlek		'Hämtar värdet från request.querystring("storlek").
			Dim datum		'Hämtar värdet från request.querystring("datum").
			Dim totalPages		'Bestämmer hela antalet sidor.
			Dim count2		'Variabel som ska jämföras med oRs2.PageSize' som stannar loopen på kommando.
			Dim image		'Variabel som innehåller adressen till bilden som ska visas i preview fönstret.
		
			datum		=	Request.QueryString("datum")
			storlek		=	Request.QueryString("storlek")
			
		
%>
          <!--#Include file = "inc/dbase2.inc"-->
<%

			Const numPerPage = 4

		If Request.QueryString("curPage") = "" then

				curPage = 1

			Else

				curPage = Request.QueryString("curPage")

		End If

		Set oRs2 = Server.CreateObject("ADODB.Recordset")

			oRs2.CursorLocation = adUseClient

			oRs2.CacheSize = numPerPage

			strSQL2 = "SELECT datum, image, ID, plats FROM Imagearchive WHERE datum = '"&datum&"' AND storlek = '"&storlek&"' ORDER BY ID ASC"
			oRs2.Open strSQL2, oConn2

			oRs2.MoveFirst
			oRs2.PageSize = numPerPage

			TotalPages = oRs2.PageCount

			oRs2.AbsolutePage = curPage

			Count2 = 0
%>
		
		
			<div id="stand" style="position:absolute; width:67px; height:331px; z-index:2; left: 435px; top: 5px; background-image:   url(GFX/structure/bildarkiv/bg_right.gif); layer-background-image:   url(GFX/structure/bildarkiv/bg_right.gif); border: 1px none #000000"> 
			<table border="0" cellspacing="0" cellpadding="0" height="331" width="100%">
			<tr>
			<td valign="top" height="1"><img src="GFX/structure/bildarkiv/row.gif" width="67" height="1"></td>
			</tr>
			<tr>
			
			<td valign="middle"> 
			<table width="67" border="0" cellspacing="0" cellpadding="0">
		
		
<%		
		
		Do While Not oRs2.EOF And Count2 < oRs2.PageSize	

%>
			<tr> 
            <td rowspan="2" valign="top" width="8"><img src="GFX/structure/bildarkiv/trans.gif" width="8" height="1"></td>
            <td> 
             <div align="center"><a href="bildarkiv2.asp?status=show&Datum=<%=oRs2("datum")%>&Storlek=1&preview=show&image=<%=oRs2("image")%>&curpage=<%=curpage%>"><img src="<%=oRs2("image")%>" width="45" height="60" border="0"></a></div>
            </td>
            <td rowspan="2" valign="top" width="8" align="right"><img src="GFX/structure/bildarkiv/trans.gif" width="8" height="1"></td>
			</tr>
			<tr>
            <td valign="top" height="15"><img src="GFX/structure/bildarkiv/trans.gif" width="1" height="15"></td>
			</tr>
<%
			Count2 = Count2 + 1
			oRs2.MoveNext

		Loop

%>
			</table>
			</td>
			</tr>
			<tr>
			<td valign="bottom" height="1"><img src="GFX/structure/bildarkiv/row.gif" width="67" height="1"></td>
			</tr>
			</table>
			</div>		
<%

%>
				<div id="standSHOW" style="position:absolute; width:253px; height:331px; z-index:3; left: 176px; top: 5px; background-image:   url(GFX/structure/bildarkiv/bg_img_stand.gif); layer-background-image:   url(GFX/structure/bildarkiv/bg_img_stand.gif); border: 1px none #000000">
				<table width="253" border="0" cellspacing="0" cellpadding="0" height="331">
				<tr>
				<td valign="top" height="1"><img src="GFX/structure/bildarkiv/row.gif" width="253" height="1"></td>
				</tr>
				<tr>
				<td valign="middle" align="center">

<%

		If Request.QueryString("status") = "show" AND Request.QueryString("storlek") = 1 AND Request.QueryString("preview")= "show" Then
			
			image	=	Request.QueryString("image")
			
			Response.Write("<img src='"&image&"' width='239' height='319' border='1'></td>")

		Else

			Response.Write("<img src='GFX/structure/bildarkiv/bg_none_stand.gif' width='253' height='329'></td>")

		End If
%>			
				</tr>
				<tr>
				<td valign="bottom" height="1"><img src="GFX/structure/bildarkiv/row.gif" width="253" height="1"></td>
				</tr>
				</table>
				</div>

				<div id="standINFO" style="position:absolute; width:326px; height:15px; z-index:4; left: 176px; top: 342px; background-image:   url(GFX/structure/bildarkiv/bg_bt_stand.gif); layer-background-image:   url(GFX/structure/bildarkiv/bg_img_stand.gif); border: 1px none #000000"> 
				
				<table width="326" height="15" border="0" cellspacing="0" cellpadding="0">
				<tr> 
				<td colspan="2"><img src="GFX/structure/bildarkiv/row.gif" width="326" height="1"></td>
				</tr>
				<tr> 
				
				<td width="163">&nbsp;<%=oRs2("plats")%>&nbsp;-&nbsp;<%=oRs2("datum")%></td>
				<td align="right" width="163">page <%=Curpage%> of <%=Totalpages%> -
				
				
				
				
				
<%

If CurPage > 1 then
%>

		<a href="bildarkiv2.asp?status=show&Datum=<%=oRs2("datum")%>&Storlek=1&curpage=<%=curpage - 1%>"'>prev</a>

<%
			Else

				Response.Write("prev")

		End If

		Response.Write("/")

		If CInt(CurPage) <> CInt(TotalPages) then
%>

		<a href="bildarkiv2.asp?status=show&Datum=<%=oRs2("datum")%>&Storlek=1&curpage=<%=curpage + 1%>"'>next</a>

<%
			Else

				Response.Write("next")

		End If

%>
				
				&nbsp;</td>
				</tr>
				<tr> 
				<td valign="bottom" colspan="2"><img src="GFX/structure/bildarkiv/row.gif" width="326" height="1" align="bottom"></td>
				</tr>
				</table>
				</div>

<%	
		oRs2.Close
		oConn2.Close

		Set	oConn2	= Nothing
		Set	oRs2	= Nothing
		
	End If

%>
Medlem sedan juni 2000125 inlägg
#2

Blir det samma sak om du bara kör:

Do While Not oRs2.EOF

/H

Medlem sedan jan. 200232 inlägg
#3

Kör jag utan "And Count2 < oRs2.PageSize" kommer
felmeddelandet direkt, istället för på sista sidan.

/ Linus

Medlem sedan feb. 2001256 inlägg
#4

Har du provat med

Do until oRs2.EOF
Medlem sedan dec. 19998 577 inlägg
#5

Problemet är att ditt uttryck är AND-baserat när det (i detta fallet) måste vara OR-baserat, byt:
Do While Not oRs2.EOF And Count2 < oRs2.PageSize
mot
Do While Not oRs2.EOF OR Count2 < oRs2.PageSize

Mvh, Vide

Medlem sedan jan. 200232 inlägg
#6

Nepp!

Lite probs .. för byter man ut AND mot OR kommer fel-meddelandet direkt istället för på sista sidan ... så man kan inte titta i arkivet över huvudtaget då..

Medlem sedan mars 20015 287 inlägg
#7

Är det inte som så att när du kör:

			Count2 = Count2 + 1
			oRs2.MoveNext

		Loop

i miten av sidan så kör du ditt RS till slutet. Efter dessa rader hämtar du mer data från RS utanför loopen. (<%=oRs2("plats")%> mm)

Skall du göra detta måste du väl köra en:

oRs2.MoveFirst samt ev. loopa ditt RS igen.

Lite snabbkoll, men så tycker jag det ser ut...

Medlem sedan jan. 200232 inlägg
#8

solbulle u're the MAN

Weeehhaa det funkar nu :) :) :) :) :) :)

Har stirrat mig blind på skiten .. hade aldrig kommit på det själv ... tack ..

MvH Linus

Medlem sedan mars 20015 287 inlägg
#9

hm :r

436 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
140 ms — deklarationer (db)
0 ms — hämta statistik (cache)
293 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)