webForumDet fria alternativet

Recordset uppdelning.

16 svar · 250 visningar · startad av cgi

cgiMedlem sedan jan. 2000371 inlägg
#1

Hello, sitter med en kod här som jag inte riktigt får igång, tänkte höra om någon här kanske kan se någon fel i den.

<%
persida = 5
For n = 1 to RS.recordcount step persida
IF n <> 1 then response.write " "
%>
<a href="gbok.asp?visa=<%=n%>"><%=n%> 
till 
<% If n + persida <=RS.recordcount then%><%=n + (persida -1)%>
<%else%>
<%=RS.recordcount%>
<%end if %>
</a>
<% next %>
<br> 
</p>
<%if RS.eof then
RS.close
set RS = nothing
else
if request("visa") = "" then
visa = 1
else
visa = Request("visa")
end if
RS.move visa -1
for row = visa to visa + (persida -1)
if RS.eof then exit for
%> 
<%=RS("tabell")%>
<% 
RS.MoveNext
next 
end if
%>
<%
End If
%>

jag får inte upp något felmeddelande, utan sidorna vill bara inte delas upp.

cgiMedlem sedan jan. 2000371 inlägg
#2

Ingen som kan detta.??

emissionMedlem sedan dec. 19996 721 inlägg
#3

Jådå, men du har en alldeles utmärkt fungerande version i FAQn

mvh

------------------
-------------------
What a waste it is to lose one's mind. Or not to have a mind is being very wasteful. How true that is.
Dan Quayle

cgiMedlem sedan jan. 2000371 inlägg
#4

Jovisst funkar den bra, men nu vill jag ha igång den här, du kan inte säga var felet ligger.
Mycket tacksam för hjälp.

PatrikBMedlem sedan mars 20002 836 inlägg
#5

Hello,

vad är det som är fel? får du några felmeddelanden eller är det pagingen som ej bryter upp i olika sidor?

cya,

------------------
'*********************
Response.Write("PatrikB")
Response.End
'*********************

cgiMedlem sedan jan. 2000371 inlägg
#6

Endast de 5 första inläggen printas ut utan att sidorna delas upp.

PatrikBMedlem sedan mars 20002 836 inlägg
#7

Hello,
[r]
Såg fel ....
[/r]
cya,

------------------
'*********************
Response.Write("PatrikB")
Response.End
'*********************

[Redigerat av PatrikB den 08 nov 2000]

cgiMedlem sedan jan. 2000371 inlägg
#8

Kan du förklara lite närmare vad du menar.

PatrikBMedlem sedan mars 20002 836 inlägg
#9

Hello igen,

undrar hur du öppnar recordsetet på för vis?
cya,

------------------
'*********************
Response.Write("PatrikB")
Response.End
'*********************

cgiMedlem sedan jan. 2000371 inlägg
#10

Så här:

Set Databas = Server.CreateObject("ADODB.Connection")
Databas.Open "DSN=xxx-databas;Password=xxx"
PatrikBMedlem sedan mars 20002 836 inlägg
#11

Hello,

Det är databaskontakten, det jag menade var om du kör:

Set rs = Databas.Execute(sql)
Eller
Set rs = Server.CreateObject("ADODB.Recordset")

ok, koden ovan(första inlägget) kan ej vara all kod du har i det scriptet.
Försökte att köra det och fick en del felmeddelanden.

Skulle du kunna posta all kod + en förklaring till hur den ska "dela" upp sidorna

cya,

------------------
'*********************
Response.Write("PatrikB")
Response.End
'*********************

cgiMedlem sedan jan. 2000371 inlägg
#12

Konstigt, jag får då inte upp något felmeddelande, detta är hela koden:

<%
Set Databas = Server.CreateObject("ADODB.Connection")
Databas.Open "DSN=xxx-databas;Password=xxx"
SQL = "select * from Gbok order by nr desc"
Set RS = Databas.Execute(SQL)
persida = 5
For n = 1 to RS.recordcount step persida
IF n<> 1 then response.write " "
%>
<a href="gbok.asp?visa=<%=n%>"><%=n%> 
till 
<% If n + persida <=RS.recordcount then%><%=n + (persida -1)%>
<%else%>
<%=RS.recordcount%>
<%end if %>
</a>
<% next %>
<br> 
</p>
<%if RS.eof then
RS.close
set RS = nothing
else
if request("visa") = "" then
visa = 1
else
visa = Cint(request("visa"))
end if
RS.move visa -1
for row = visa to visa + (persida -1)
if RS.eof then exit for
%> 
Namn: <%=RS("G_namn")%><br>
Datum: <%=RS("G_datum")%><br>
Inlagg: <%=RS("G_inlagg")%><br>
<% 
RS.MoveNext
next 
end if
%>

sidorna ska sedan delas upp på följande sätt:
<a href="gbok.asp?visa=1">1-5</a>
<a href="gbok.asp?visa=6">6-10</a>
osv..

[Redigerat av cgi den 08 nov 2000]

PatrikBMedlem sedan mars 20002 836 inlägg
#13

Hello,

Denna typ av RecSet - Set RS = Databas.Execute(SQL)
- stödjer inte ADODB.Recordsets RS.RecordCount utan får ett värde av -1

Prova med att skapa ett ADODB.Recordset istället.

Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open SQL, Databas, 3, 3

cya,

------------------
'*********************
Response.Write("PatrikB")
Response.End
'*********************

[Redigerat av PatrikB den 08 nov 2000]

cgiMedlem sedan jan. 2000371 inlägg
#14

Får upp fel: Invalid connection.
kan du beskriva lite mer hur man ska sätta ihop detta på ett bra sätt.

PatrikBMedlem sedan mars 20002 836 inlägg
#15

Hello,

denna kod har jag kört, endat ändrat så att sql och rs("fält") stämde med min databas, och det funkade utan en enda ändring.

<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
<%
Set Databas = Server.CreateObject("ADODB.Connection")
	Databas.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=x:\db.mdb;"

	SQL = "SELECT * FROM Gbok ORDER BY nr"

	Set RS = Server.CreateObject("ADODB.Recordset")
		RS.Open SQL, Databas, 3, 3
		
	persida = 5
	For n = 1 to RS.recordcount step persida
		IF n<> 1 then response.write " "
%>
<a href="gbok.asp?visa=<%=n%>"><%=n%> 
till 
<%
		If n + persida <=RS.recordcount then
			Response.Write(n + (persida -1))
		Else
			Response.Write RS.recordcount
		End If
%>
</a>&nbsp;
<%
	Next
%>
<br> 
</p>
<%
	If RS.eof then
		RS.close
		set RS = nothing
	Else
		If request("visa") = "" then
			visa = 1
		Else
			visa = Cint(request("visa"))
		End If
	RS.move visa -1
		For row = visa to visa + (persida -1)
			If RS.eof Then Exit For
%> 
<b>Namn:</b> <%=RS("G_namn")%><br>
<b>Datum:</b> <%=RS("G_datum")%><br>
<b>Inlagg:</b> <%=RS("G_inlagg")%><hr>
<% 
			RS.MoveNext
		Next 
	End if
%>
</BODY>
</HTML>

Ändra sökvägen till db så att det stämmer med sökvägen till din db.

cya,

------------------
'*********************
Response.Write("PatrikB")
Response.End
'*********************

cgiMedlem sedan jan. 2000371 inlägg
#16

Konstigt, det funkar inte för mig.?

PatrikBMedlem sedan mars 20002 836 inlägg
#17

Hello,

detta är din kod, ändrat till ADODB.Recordset och annat sql uttryck för att passa min db: http://www.mrwize.nu/pageing/paging.asp

cya,

------------------
'*********************
Response.Write("PatrikB")
Response.End
'*********************

264 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
136 ms — hämta forumlista (db)
124 ms — hämta statistik (db)
134 ms — hämta tråd, inlägg och bilagor (db)