webForumDet fria alternativet

Paging, lokalisera felet vinn en påse muffins= )

ASPur ASP

4 svar · 402 visningar · startad av cubic

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

Någon som vill lokalisera problemet eller rättare sagt kan hitta det?!

Set Conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("anteckningsblock.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT datum, rubrik, gengre, special, handelse From block ORDER BY Datum Desc"

%>
<% 	
Set Data = conn.Execute(SQL)

Do until data.EOF
%>
	<%'Detta är DEL1 i PAGING KODEN den del som är uttabbad är pagingkod!!!!
	
	Dim sida
	sida = Trim(Request.QueryString("sida"))
	If sida = "" Then
	sida = 1
	End If
	

[B]RAD35[/B]     RecSet.PageSize = 3
	RecSet.AbsolutePage = sida
	%>
	
	<%' Detta är del 2 i pagingkoden Den del som är UTtabbad ett hack är PAGING!!!!
	Dim rad
	rad = 0
	While Not RecSet.EOF and rad < RecSet.PageSize
	rad = rad + 1
	%>

Här kommer response.write data("rubrik")
och andra databas utskrivningar samt textformatering.

	<%RecSet.MoveNext%>
	<%Wend%>
	
<%Detta är 3e delen i PAGING koden! Den kod som är uttabad ett hack är PAGING KOD!!!! OBS OBS OBS%>
	<%If RecSet.PageCount > 1 Then
	For i = 1 to RecSet.PageCount
	If i = CLng(sida) Then
	Response.Write "[" & i & "]&nbsp;"
	Else
	Response.Write "<a href=""ms_anteckningleft.asp?sida=" & i & """>" & i & "</a>&nbsp;"
	End If
	Next
	End If%>

<% 

data.MoveNext
loop

RecSet.Close: Set RecSet = Nothing
data.Close: Set data = Nothing
conn.Close: Set conn = Nothing

%>

Ok här har ni en ?enkel paging kod skall göra den snyggare så att ni som vill saxa kod kan ta den. Eftersom jag gjorde det från början= ).

Men först måste vi lösa ett problem nämligen att jag får följande felmeddelande:

ADODB.Recordset- Error '800a0e78'

Åtgärden är inte tillåten när objektet är stängt.

rad 35

Någon som vill lokalisera problemet eller rättare sagt kan hitta det?!

Medlem sedan mars 20041 505 inlägg
#2

Hm, jag kan inte lösa problemet, men jag antar att det är för att du först skapar ett RecSet där uppe som aldrig öppnas, sedan skapar du Data, och RecSet och Data har inget med varandra att göra där.

Medlem sedan feb. 200511 inlägg
#3

Ok har du lust att förklara lite mer på detta? Hur man kollar det med en If-sats så vore du grymt sjysst. Du eller NI ser inget annat som kan vara tok?

Medlem sedan jan. 2004128 inlägg
#4

Set Data = conn.Execute(SQL)

Do until data.EOF

Ska vara såhär:

Set RecSet = conn.Execute(SQL)

Do until RecSet.EOF

Medlem sedan juni 200032 967 inlägg
#5

Skall man använda paging måste man skapa ett recordset med cursortyp som tillåter det. När man skapar sitt recordset som du gör så skapas det med en standard forward-only cursor som inte har de egenskaper du vill använda. Prova något sånt här:

Set RecSet = Server.CreateObject("ADODB.RecordSet")
RecSet.Open SQL, Conn, 3, 1 ' cursortyp 3 är adOpenStatic

http://www.devguru.com/technologies/ado/quickref/recordset_open.html

mvh

132 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)