---
title: "Måste jag loopa?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/12943-måste-jag-loopa"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "iceM2"
published: "2001-12-01T10:26:00.000Z"
updated: "2001-12-01T14:56:00.000Z"
replies: 9
views: 179
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/12943-måste-jag-loopa"
---

# Måste jag loopa?

## #1 — iceM2, 2001-12-01T10:26Z

Jag har en gästbok där jag loopar ut de 20 nyaste inläggen Jag undrar om detta går att lösa på ett bättre sätt? Tex med Get.Rows() ??? Hur i så fall?

Sedan ska man kunna klicka vidare bland inläggen med paging...

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

## #2 — jorgen, 2001-12-01T10:38Z

```
strSQL = "SELECT TOP 20 * FROM Gastbok " & _
" ORDER BY id DESC"
strConn = "DSN="
Set objConn = Server.CreateObject("ADOdb.Connection")
objconn.Open strConn
arrMess = objConn.Execute(strSQL).GetRows()
objConn.Close()
Set objConn = Nothing

Response.Write "<p><strong>De 20 senaste skribenterna:</strong><p>"

if IsArray(arrMess) Then

For I = 0 To UBound(arrMess,2)

strMeddelande = arrMess(0,I)

Response.Write "<p>"& strMeddelande&"</p>"

Next
end if
```

Red: Kolla PatrikB:s paging under wF script, det är uppbyggt med Getrows() också. ;)

mvh Jörgen :)

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

## #3 — iceM2, 2001-12-01T13:08Z

Tack så mycket! En fråga bara, går det bara att skriva ut det som en mängd? Om man vill kunna bestämma varje recset hur gör man då dvs, jag vill strukturera hur det skall skrivas ut..

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

## #4 — jorgen, 2001-12-01T13:16Z

```
strSQL = "SELECT TOP 20 Namn, Datum, Mess FROM Gastbok " & _
" ORDER BY id DESC"
strConn = "DSN="
Set objConn = Server.CreateObject("ADOdb.Connection")
objconn.Open strConn
arrMess = objConn.Execute(strSQL).GetRows()
objConn.Close()
Set objConn = Nothing
Response.Write "<p><strong>De 20 senaste skribenterna:</strong><p>"

if IsArray(arrMess) Then

For I = 0 To UBound(arrMess,2)

strNamn = arrMess(0,I)
dteDatum = arrMess(1,I)
strMeddelande = arrMess(2,I)

Response.Write "<p>Inlägget gjort av "& strNamn &" den "& dteDatum &"</p>" & _

"<p>Meddelande:<br> "& strMeddelande &" </p>"
Next
end if
```

Vet ej riktigt vad du menar, fattade jag dig fel så får du höjta. Du kan strukturera det med tabeller också om du vill. Det är bara att bestämma hur du vill presentera datan.

red: första definierade fältet i SQL-frågan får nr 0 i arrayen, andra fältet nr 1, 3:e nr 2 osv.

mvh Jörgen :)

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

## #5 — LarsG, 2001-12-01T13:23Z

Nej, du behöver inte loopa. Det finns en funktion som heter getstring.
 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdmthgetstringmethod(recordset)ado.asp

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

## #6 — iceM2, 2001-12-01T13:28Z

Tack för svaren! Det som Jörgen visa verkar vara precis det jag är ute efter =) Det är måste ju vara mycket mer prestanda-snålt va? I och med att kopplingen stängs snabbt som en blixt.

En fråga till om jag hämtar alla kolumner från en DB ska jag även då skriva specifikt vilka kolumner jag hämtar ifrån? dvs

> strSQL = "SELECT TOP 20 Namn, Datum, Mess FROM Gastbok " & \_

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

## #7 — LarsG, 2001-12-01T13:50Z

Jag tycker att du skall skriva ut kolumnerna explicit. Det är mer dokumentativt och i vissa fall har det betydelse i vilken ordning man anger kolumnerna (i samband med lobar.)

Om det är effektivare, ur prestandasynpunkt, att skriva 

```
select * from ogrish
```

eller

```
select aleb,caleb from ogrish
```

tycker jag är ovdikommande. Den eventuella skillnad som finns är försumbar i de flesta fall. Om man vill optimera kod, så är det inte det första man tittar på.

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

## #8 — jorgen, 2001-12-01T13:50Z

Hej, vill du presentera datan i tabellformat och på ett ställe, dvs inte dutta ut datan på flera ställen är Getstring prestandamässigt bättre (du slipper loopen).

Den tar ut alla data ur ett recset object och formaterar en tabellstruktur i en textsträng. Även med metoden Getstring kan man stänga connectionobjectet direkt.

mvh Jörgen :)

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

## #9 — iceM2, 2001-12-01T14:37Z

Okej, jag var lite undrande över när man ska använda GetRows och när man kan använda GetString, trots din förklaring (on offence)...

Jag sökte lite på WF och hittade följande intressanta tråd som reder ut skillnade dem emellan mycket bra! Tänkte dela med mig av tråden:
 <http://cgi.webforum.nu/wf/Forum11/HTML/004882.html> 

Tack så hemskt mycket för hjälpen Jörgen och LarsG, känns fruktansvärt bra att använda detta =) 

\[Redigerat av iceM2 den 01 dec 2001\]

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

## #10 — jorgen, 2001-12-01T14:56Z

Njea, det är en smaksak, vill du presentera det i tabellformat på ett ställe så passar även metoden Getstring. Jag använder enbart Getrows och från tidigare diskussioner här på wF verkar de flesta hålla sig till Getrows. Annars kan det se ut något i stil med:

```
strMyMess = objRS.GetString(,,"</td><td>","</td></tr><tr><td>")
objRS.Close()
set objRS = Nothing
objConn.Close()
set objConn = Nothing

with Response

.write("<table><tr><td>")
.write(strMyMess)
.write("</td></tr></table>")

end with
```

red: du kan skriva:

```
strMyMess = objRS.GetString(,-1,"</td><td>","</td></tr><tr><td>")
```

så får du samtliga poster, bytar du -1 mot 20, får du de 20 första posterna i ditt recset.

otestad kod, ta det som ett exempel :)

mvh Jörgen :)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/12943-måste-jag-loopa
