---
title: "Optimering: Visa db rad med poster..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/10303-optimering-visa-db-rad-med-poster"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Lukaspojken"
published: "2001-06-28T11:01:00.000Z"
updated: "2001-06-28T15:51:00.000Z"
replies: 14
views: 255
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/10303-optimering-visa-db-rad-med-poster"
---

# Optimering: Visa db rad med poster...

## #1 — Lukaspojken, 2001-06-28T11:01Z

Så här lärde man sig på webstudio att man skulle göra:

```
Set RecSet = Server.CreateObject("ADODB.Recordset")

Visa = "SELECT * FROM forum WHERE msgID=" & msg
RecSet.Open Visa, Connect, 3, 3
```

Men jag vet att man kan göra på något bättre sätt också

```
Visa = "SELECT * FROM forum WHERE msgID=" & msg
Connect.Execute(Connect)
```

Men hur skriver jag ut posterna egentligen. Det är bara en rad jag ska ha i tabellen...och där det står Select \*...blir det en optimering om man skriver fältnamnen där?

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

## #2 — Lukaspojken, 2001-06-28T11:02Z

Connect.Execute(Visa)

Ska det stå...

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

## #3 — @nders, 2001-06-28T11:09Z

det borde t.o.m. stå

```
Visa = "SELECT * FROM forum WHERE msgID=" & msg
set RecSet = Connect.Execute(visa)
```

du skriver ut posterna på exakt samma sätt som du gör när du fyller ditt recordset med recset.open.

prestandafrågan kan jag inte ge något bra svar på. den lämnar vi så länge.

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

## #4 — Lukaspojken, 2001-06-28T11:12Z

Om jag hämtar data från en specifik rad och sen direkt efter det ska hämta från en annan. Måste jag stänga ner RecSet-objektet och skapa det igen med "Set Recset"?

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

## #5 — @nders, 2001-06-28T11:14Z

du skall inte använda

```
Set RecSet = Server.CreateObject("ADODB.Recordset")
```

om du väljer att skapa recordsetet genom connectionobjektets executemetod (som jag gjorde ovan, som jag *alltid* gör).

det räcker alldeles utmärkt då med de två raderna kod jag slängde med (under förutsättning givetvis att ditt connectionobjekt är skapat).

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

## #6 — @nders, 2001-06-28T11:15Z

eller, öh, vad menar du med din andra fråga?

du kan givetvis återanvända ditt RecSet-objekt.

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

## #7 — Lukaspojken, 2001-06-28T11:27Z

Jag var lite otydlig där...ska försöka visa i ett exempel...

```
strSQL = "SELECT * FROM forum WHERE msgID=" & Msg
Set RecSet = Connect.Execute(strSQL)

RecSet.Close
Set RecSet = nothing

strSQL = "SELECT * FROM forum WHERE msgID=" & Msg2
Set RecSet = Connect.Execute(strSQL)

RecSet.Close
Set RecSet = nothing
```

Jag antar att jag inte behöver stänga ner RecSetet för att i sin tur skapa det igen i nästa hämtning...eller? Du nämnde nåt om återanvändning...ska jag bara ta bort set på andra hämntningen kanske?

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

## #8 — @nders, 2001-06-28T11:31Z

nej, behåll set, men du behöver inte stänga och förstöra objektet innan du kör nästa fråga.

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

## #9 — Lukaspojken, 2001-06-28T11:40Z

När jag skriver ut inläggen till ett huvudinlägg skriver jag gör jag hämtningen så här:

```
Set RecSet = Server.CreateObject("ADODB.Recordset")

Visa = "SELECT * FROM forum WHERE Thread_ID=" & Mail & " ORDER BY Thread_ReplyOrder"
RecSet.Open Visa, Connect, 3, 3 

Do While Not RecSet.EOF 

response.write "<TD class=text2 width=" & RecSet("Thread_Level") & 0 & " nowrap> etc etc....:)

RecSet.MoveNext
Loop
```

Jag antar att jag ska använda mig av en array istället för det är en del response.write eller? Ser det annars bra ut?

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

## #10 — Lukaspojken, 2001-06-28T11:42Z

Märker att jag inte ens kan bygga upp de svenska meningarna korrekt...puh...:)

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

## #11 — @nders, 2001-06-28T11:47Z

array istället för vadå :q

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

## #12 — Lukaspojken, 2001-06-28T11:50Z

Att jag hämtar in alla värden in i en array så att jag kan stänga ner db-kopplingen så snabbt som möjligt...och använda mig av array-värdena när jag gör mina response-write rader...eller tänker jag helt fel?

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

## #13 — @nders, 2001-06-28T11:51Z

tja, getrows() är ju smidigt att använda, så om du kör en getrows direkt så kan du ju stänga direkt. :)

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

## #14 — Lukaspojken, 2001-06-28T12:08Z

Ska göra det tror jag...men annars såg hämtning bra ut eller...jättetack @nders...

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

## #15 — PatrikB, 2001-06-28T15:51Z

Nä, finns ett fel, om du inte ska lägga till nya poster med detta recordset.

Om du inte behöver lägga till poster utan bara hämta ut alla poster ska du inte använda dig av:

```
RecSet.Open Visa, Connect, 3, 3
```

Utan av:

```
RecSet.Open Visa, Connect, 3, 1
```

\[r\]
och behöver du inte räkna posterna så räcker denna öppning:

```
RecSet.Open Visa, Connect, 0, 1
```

fast det bästa är att skapa recsetet genom conn objektet och sedan hämta ut med getrows()

```
Visa = "SELECT * FROM forum WHERE msgID=" & msg
Set objRS = Connect.Execute(Visa)
If Not objRS.EOF Then
arrRecords = objRS.GetRows()
End If
Set objRS = Nothing
```

cya,
PatrikB

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/10303-optimering-visa-db-rad-med-poster
