---
title: "Vides paging med Get.Rows() ?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/12971-vides-paging-med-get-rows"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "iceM2"
published: "2001-12-01T23:11:00.000Z"
updated: "2001-12-03T13:06:00.000Z"
replies: 15
views: 240
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/12971-vides-paging-med-get-rows"
---

# Vides paging med Get.Rows() ?

## #1 — iceM2, 2001-12-01T23:11Z

Jag undrar om det går att modifiera Vides paging script för att använda Get.Rows? Så att man kan stänga connection objektet snabbare och slippa skapa ett Record Set??? Någon som har lust att hjälpa?

Vides paging script

```
<%
Set objRs = Server.Createobject("Adodb.Recordset")
strSQL = "Select * from tblTable Order by id asc"
strConString = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" &_
Server.MapPath("/") & "/../scripts/databas.mdb"

intPageId = request.querystring( "pageid" )
if intPageId = "" then intPageId = 1

with objRs
  .cursorlocation = 3
  .open strSQL, strConString
  .pagesize = 10
  .absolutepage = intPageId
end with

intPages = cint( objRs.pagecount )
intCurrentPost = 0

do while not objRs.eof and intCurrentPost < objRs.pagesize
  strContents = strContents &_
    "<tr><td>" & objRs( "fält1" ) & "</td>" &_
    "<td>" & objRs( "fält2" ) & "</td></tr>"
  intCurrentPost = intCurrentPost + 1
  objRs.movenext
loop

for i = 1 to objRs.pagecount
  strNavigation = strNavigation & " <a href='?pageid=" & i & "'>" & i & "</a>"
next

response.write "<table>" & strContents & "</table>"
response.write "<table><tr><td>" & strNavigation & "</td></tr></table>" 
%>
```

Hoppas att det var okej att jag publicerade din kod Vide!

Permalänk: https://www.webforum.nu/p/12971

## #2 — LarsG, 2001-12-01T23:36Z

Jo, det går väl, men då skriptet använder ett client-side recordset så tjänar du inte mycket på att skriva om det med getrows. 

Är det någon som har en konkret jämförelse?

Permalänk: https://www.webforum.nu/p/299604

## #3 — iceM2, 2001-12-01T23:43Z

finns det inte något exempel där ett paging script använder getrows och är prestandamässigt bättre än en lösning med recset? Hur gör ni när ni använder paging?

Permalänk: https://www.webforum.nu/p/299605

## #4 — iceM2, 2001-12-02T10:34Z

Ingen som har en lösning på detta? Eller ska man helt enkelt inte använda getrows när man har paging??? Skulle verkligen uppskatta om nån hjälper mig med detta!

Permalänk: https://www.webforum.nu/p/299606

## #5 — Vide, 2001-12-02T10:37Z

> Så att man kan stänga connection objektet snabbare

Du kan stänga connection-objektet genom att lägga till .ActiveConnection = nothing, vilket resulterar i ett diconnected recordset:

```
with objRs
.cursorlocation = 3
.open strSQL, strConString
.pagesize = 10
.absolutepage = intPageId
.ActiveConnection = nothing
end with
```

> och slippa skapa ett Record Set???

Du kommer aldrig att komma ifrån att ett recordset skapas, för det är just recordsettet som du använder metoden .GetRows() på.

> Hoppas att det var okej att jag publicerade din kod Vide!

Självklart, scriptet är till för att användas... ;)

Permalänk: https://www.webforum.nu/p/299607

## #6 — Vide, 2001-12-02T10:40Z

Om du kollar under script här på wF så hittar PatrikBs pagingscript som använder .GetRows():
 <http://cgi.webforum.nu/wf/Forum11/HTML/003221.html>

Permalänk: https://www.webforum.nu/p/299608

## #7 — iceM2, 2001-12-02T10:49Z

är jag blind??? Jag kan inte se att han använder Get.Rows() på något ställe i scriptet...

Permalänk: https://www.webforum.nu/p/299609

## #8 — jorgen, 2001-12-02T11:02Z

Kod från PatriksB paging:

```
If Not m_objRS.EOF Then
m_arrRecords = m_objRS.GetRows()
getRecords = m_arrRecords
End If
```

I övrigt så är det inte att skapa recset i sig som snabbar upp. Det är 2 andra faktorer som snabbar upp:

1) Som du själv säger, connectionobjectet stängs fort.

2) Samtlig data hämtas med få hämtningar och läggs i en array. Sedan loopas det ut i en for-slinga. Till skillnad från när man hämtar en rad i taget i en Do- eller whileloop.

mvh Jörgen :)

Permalänk: https://www.webforum.nu/p/299610

## #9 — iceM2, 2001-12-02T11:16Z

> http://cgi.webforum.nu/wf/Forum11/HTML/003221.html

Det var ju inte så konstigt att jag inte hittade Getrows! Vides länk leder ju till en annan version av scriptet som inte använder Getrows.

Länken till diskussionen om Patriks script med paging och getrows ska vara:
 <http://cgi.webforum.nu/wf/Forum11/HTML/004000.html> 

Länken för att ladda ner scriptet är:
 <http://script.webforum.nu/wf/Forum1/HTML/000063.html> 

Vide ville bara göra dig uppmärksam om att länken på webeye leder också till fel länk, bara så du vet ;-)

Tack för hjälpen folks!

Permalänk: https://www.webforum.nu/p/299611

## #10 — aleborg, 2001-12-02T12:41Z

<http://www.4guysfromrolla.com/webtech/070500-1.shtml> 

med GetRows!

Permalänk: https://www.webforum.nu/p/299612

## #11 — iceM2, 2001-12-02T16:19Z

Tackar, kollade på det scriptet och det verkar ju vara riktigt bra, inte alls lika mycket kod som i Patriks script =)

Permalänk: https://www.webforum.nu/p/299613

## #12 — jorgen, 2001-12-02T16:51Z

Poängen med Patriks script är att det fungerar både i chilliASP och "vanlig ASP"

mvh Jörgen :)

Permalänk: https://www.webforum.nu/p/299614

## #13 — PatrikB, 2001-12-02T18:09Z

Precis som jörgen sa så är min paging anpassad för både chilliASP och "vanlig asp".
Om jag körde vanlig asp så skulle jag använda mig av denna lösning:

```
<%
Option Explicit
Response.Buffer = True

Dim intPage, intPageSize, N
Dim strSQL
Dim objConn, objRS
Dim varArray

'## -- kolla vilken sida besökaren/användaren vill se --
intPage = Request.QueryString("page")
	'## -- kontrollera att någonsida är namngiven.
	'##    om inte, visa första sidan --
	If Len(intPage) = 0 Then intPage = 1

'## -- hur många poster ska visas per sida --
intPageSize = 2

'## -- sql-fråga för att hämta de poster man vill visa --
strSQL = "SELECT * " & _
	"FROM FORUM_CATEGORY ORDER BY CAT_NAME"

'## -- skapa connection objectet --
Set objConn = Server.CreateObject("ADODB.Connection")

	'## -- öppna specifierad databas/databas-fil
	objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
		"Data Source=" & Server.MapPath("/db-folder/db-fil.mdb")
		
	'## -- skapa recordset objectet --
	Set objRS = Server.CreateObject("ADODB.Recordset")
		'## -- hur många poster per sida ska visas --
		objRS.PageSize = intPageSize
		
		'## -- öppna recordsetet --
		objRS.Open strSQL, objConn, 1, 3
		
		'## -- kolla att det har returnerats några poster --
		If Not objRS.EOF Then
			'## -- gå till första posten på sidan --
			objRS.AbsolutePage = intPage
			
			'## -- hämta alla poster och spar dem till en 2-dimensionell array --
			varArray = objRS.GetRows(intPageSize)
		End If
		
		'## -- clean up --
		objRS.Close
	Set objRS = Nothing
Set objConn = Nothing
%>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
<%
If IsArray(varArray) Then
	For N = 0 To UBound(varArray,2)
		Response.Write varArray(2,N) & "<BR>"
	Next
End If

If CLng(intPage) > 1 Then
	Response.Write " <A href=""" & Request.ServerVariables("SCRIPT_NAME") & "?page=" & intPage - 1 & """>Föregående</A> "
End If	

If CLng(intPage) < CLng(UBound(varArray,2)+1) Then
	Response.Write " <A href=""" & Request.ServerVariables("SCRIPT_NAME") & "?page=" & intPage + 1 & """>Nästa</A> "
End If
%>
</BODY>
</HTML>
```

som hämtar endast de records som ska visas på respektive sida ... om man ändå håller på och ska köra med ADODB.Recordset så kan man låta dess inbyggda metoder/egenskaper få jobba lite \*ler\* när de ändå finns där såååå lätt åtkomliga som de är ;)

cya,
PatrikB

Permalänk: https://www.webforum.nu/p/299615

## #14 — iceM2, 2001-12-03T09:57Z

Tackar så mycket för detta script Patrik =) Jag kör med ditt verkar lättare nu än var det var innan =)

Hur skulle denna koden se ut om du la till sidnavigeringsmenyn? dvs så man kan hoppa mellan olika sidor förutom näst och föregående..

Tips: lägg upp även detta på script avdelningen!!

Permalänk: https://www.webforum.nu/p/299616

## #15 — PatrikB, 2001-12-03T12:23Z

kolla in mitt script som ligger under wF Script. Där finns det 3 st subbar: NextPage, PrevPage och PageNumbers ... om jag inte missminner mig totalt \*ler\*.
Dessa subbar kan du använda på de sidor som du vill ha pagebar på som ser ut typ: Föregående 1 2 3 4 Nästa

Det som behöver "passas" in i de olika subbarna är hur många sidor som själva recordsetet består av och vilken sida man är på.

cya,
PatrikB

Permalänk: https://www.webforum.nu/p/299617

## #16 — iceM2, 2001-12-03T13:06Z

okej, ska ta mig en titt på detta när jag fått resten av scriptet att fungera, tack för hjälpen ännu en gång i alla fall!

Permalänk: https://www.webforum.nu/p/299618

---

Tråden på webben: https://www.webforum.nu/amne/asp/12971-vides-paging-med-get-rows
