---
title: "Öppna och stänga databasen"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/182190-öppna-och-stänga-databasen"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Bjarne A"
published: "2010-01-27T19:12:21.000Z"
updated: "2010-01-28T06:39:22.000Z"
replies: 3
views: 648
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/182190-öppna-och-stänga-databasen"
---

# Öppna och stänga databasen

## #1 — Bjarne A, 2010-01-27T19:12Z

Jag försöker se till att databasen belastas så lite som möjligt då det är en Access databas, genom att öppna den en gång och hämta allt som behövs på sidan och lägga det i variabler och sedan stänga.

Men då jag hämtar från många olika rader blir det ju så många "connect"

Jag har 80 st rader jag hämtar från (kapat lite av koden för bättre synlighet)

Skall jag stänga RS:en och Connect mellan varje radanrop?

Är det kanske ett tokdumt sätt att hämta på?

```
<%
set connect = server.createobject("ADODB.connection")
connect.Open "DBQ=" & server.mappath("db.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}" 
%>

<%Set RS=connect.execute("SELECT * FROM hemsidor  WHERE sidan = " & sidnamn & " ") 

str_title = RS("ruta") & ""

bildval_ettan = RS("bildtyp_ettan") & ""
bildval_tvaan = RS("bildtyp_tvaan") & ""
bildval_trean = RS("bildtyp_trean") & ""
bildval_fyran = RS("bildtyp_fyran") & ""
bildval_femman = RS("bildtyp_femman") & ""
bildval_sexan = RS("bildtyp_sexan") & ""
bildval_sjuan = RS("bildtyp_sjuan") & ""
bildval_attan = RS("bildtyp_attan") & ""
bildval_nian = RS("bildtyp_nian") & ""
bildval_tian = RS("bildtyp_tian") & ""

str_meddelande_ettan = RS("meddelande_ettan") & ""
str_meddelande_tvaan = RS("meddelande_tvaan") & ""
str_meddelande_trean = RS("meddelande_trean") & ""
str_meddelande_fyran = RS("meddelande_fyran") & ""
str_meddelande_femman = RS("meddelande_femman") & ""
str_meddelande_sexan = RS("meddelande_sexan") & ""
str_meddelande_sjuan = RS("meddelande_sjuan") & ""
str_meddelande_attan = RS("meddelande_attan") & ""
str_meddelande_nian = RS("meddelande_nian") & ""
str_meddelande_tian = RS("meddelande_tian") & ""
str_meddelande_stor = RS("stor") & ""

str_form_rubrik = RS("form_rubrik") & ""
str_form_epost = RS("form_epost") & ""
str_form_amne = RS("form_amne") & ""

str_form_google_title = RS("google_title") & ""
str_form_google_key = RS("google_key") & ""
str_form_google_des = RS("google_des") & ""

str_i = RS("ruta") & ""

Set RS=connect.execute("SELECT * FROM hemsidor  WHERE sidan = " & 30 & " ")  
ruta30 = RS("ruta") & ""
boxen30 = RS("boxen")
IF boxen30 = "ja" THEN 
visa_toppmeny ="japp"
END IF

Set RS=connect.execute("SELECT * FROM hemsidor  WHERE sidan = " & 31 & " ")  
ruta31 = RS("ruta") & ""
ruta_i31 = ruta31
boxen31 = RS("boxen")
i31 = RS("google_title") & ""

Set RS=connect.execute("SELECT * FROM hemsidor  WHERE sidan = " & 32 & " ")  
ruta32 = RS("ruta") & ""
ruta_i32 =ruta32
boxen32 = RS("boxen")
i32 = RS("google_title") & ""

Set RS=connect.execute("SELECT * FROM hemsidor  WHERE sidan = " & 33 & " ")  
ruta33 = RS("ruta") & ""
ruta_i33 = ruta33
boxen33 = RS("boxen")
i33 = RS("google_title") & ""

Set RS=connect.execute("SELECT * FROM hemsidor  WHERE sidan = " & 34 & " ")  
ruta34 = RS("ruta") & ""
ruta_i34 = ruta34
boxen34 = RS("boxen")
i34 = RS("google_title") & ""

Set RS=connect.execute("SELECT * FROM hemsidor  WHERE sidan = " & 35 & " ")  
ruta35 = RS("ruta") & ""
ruta_i35 = ruta35
boxen35 = RS("boxen")
i35 = RS("google_title") & ""
%>

<%
RS.close
set RS = nothing
connect.Close
set connect = nothing
%>
```

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

## #2 — @nders, 2010-01-27T19:38Z

Njäe, öppnandet och stängandet av databas / recordset behöver du inte tänka så mycket på när det gäller den koden.

Däremot är det väldigt mycket annat i den koden som är riktigt, riktigt hemskt. Men det är något för en annan tråd antar jag.  ;)

Mvh

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

## #3 — Bjarne A, 2010-01-27T21:11Z

Något som är riktig riktigt hemskt.... det låter ju inte bra.... och vad skall rubriken i tåden vara då.... 

Dim kanske :OO

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

## #4 — @nders, 2010-01-28T06:39Z

Nja, rubriken kan man låta vara orörd, men jag tänkte mest att det var connection och recordset du undrade över, då låter jag det andra vara.  :)

Men kort:
1) Du borde hämta alla sidor på en gång och lägga dem i en array, istället för att köra massor av SQL-frågor.
2) Det finns ingen som helst anledning att konkatenera in siffror i en sträng så som du gör. Följande:

```
Set RS=connect.execute("SELECT * FROM hemsidor  WHERE sidan = " & 30 & " ")
```

borde se ut så här:

```
Set RS=connect.execute("SELECT * FROM hemsidor  WHERE sidan = 30)
```

3) "Bildval"- och "meddelande"-fält borde ligga i en egen tabell och joinas in när du vill ha dem. Vad händer om du vill lägga till ytterligare ett meddelande? I dagsläget måste du förändra tabellens utseende, och det är inte bra.
4) Access-drivern du använder är "gammal" - det är bättre om du ansluter med OLEDB.

Det var det. Just nu iaf.  :)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/182190-öppna-och-stänga-databasen
