---
title: "Databaskoppling mot MySQL i funktion"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/158832-databaskoppling-mot-mysql-i-funktion"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "MickeA.com"
published: "2007-04-01T08:39:44.000Z"
updated: "2007-04-15T12:15:40.000Z"
replies: 7
views: 788
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/158832-databaskoppling-mot-mysql-i-funktion"
---

# Databaskoppling mot MySQL i funktion

## #1 — MickeA.com, 2007-04-01T08:39Z

Tjena
Jag håller på och gör om en mycket stor sida som i dagsläget jobbar mot Access, till MySQL.
Jag har lagt databaskopplingen i en "funcs.asp" fil som inkluderas på sidorna.
Såhär ser det ut:

```
'
'-------------------------------------------------------------------------------------------
' Initiera Databasanslutning
'-------------------------------------------------------------------------------------------
Public Sub open_db()
	Set oConn = Server.CreateObject("ADODB.Connection")
	oConn.Open("Driver={MySQL ODBC 3.51 Driver};Server=domänet.se;Port=3307;Database=min_databas;User=anv.namn;Password=mitt_passwd;Option=3;")
End Sub
'
'-------------------------------------------------------------------------------------------
' Avsluta Databasanslutning
'-------------------------------------------------------------------------------------------
Public Sub close_db()
	oConn.close
	Set oConn = Nothing
End Sub
'-------------------------------------------------------------------------------------------
```

Högst upp på undersidorna kör jag:

```
Dim oConn :  Call open_db()
```

och längst ner: 

```
Call close_db()
```

Detta funkade kanonbra från början, men sen har det börjat strula till sig ordentligt.
IIS gör timeout hela tiden och säger "För många anslutna användare".
Det spelar ingen roll om jag startar om IIS, får samma direkt efter iaf.

Så nu tänkte jag höra vad jag gjort för fel, är det så att mina funktioner på något sätt "felar" så att anslutningen mot MySQL ligger öppen hela tiden?

Hur ska jag göra?

Tack!

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

## #2 — MickeA.com, 2007-04-01T14:09Z

Tjena
Nu är problemet "halvlöst".
Felet verkar ligga i min funktion *Call close_db()*, för det verkar inte som om kopplingen stängs, utan ligger kvar, trots att nya skapas hela tiden.
Nu tog jag bort *HTTP Keep-Alive* i IIS och bytta ut *Call close_db()* mot *oConn.Close : Set oConn = Nothing*

Nu verkar det som om kopplingen stängs, men varför?
Det är ju precis samma kod, bara att den ligger utanför funktionen.

/r
Hittade den här länken när jag sökte här på wF:
<http://www.shiningstar.net/articles/articles/database/datafunctions.asp?ID=AW>
Hur ser koden ut som ska ligga i *global.asa*?

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

## #3 — MickeA.com, 2007-04-01T16:39Z

Hmm, det blir ingen skillnad vad jag än gör verkar det som...
Liksom igår så funkar det tills jag kommer till "kontakta-sidan", då blir det toksegt, browsern gör timeout och *403 =\> För många samtida anslutningar...*.

Nu stänger jag oConn på VARJE undersida, ändå blir det såhär.
I filen contact.asp finns inget "konstigt" heller, några olika textstycken som hämtas från en och samma funktion, inget märkvärdigt.

Går det att kolla någonstans vad och hur många typ anslutningar som ligger bakom, med script eller någonstans i IIS.

Håller på och bli tokig på det här, måste lösas.
Tacksam för alla tips!

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

## #4 — MickeA.com, 2007-04-01T20:01Z

Nu \_tror\_ jag att jag kommit fram till vad problemet beror på.
Jag använder en class för "forumkod" som jag hittat här på wF.

Har använt den på flera sajter, men av någon anledning har den helt plötsligt strula.
Tar jag bort min *\<--#include ... --\>* för den så funkar nämligen sajten igen som den ska.

Någon som kanske vet vad det kan bero på?
Har testat sidan på dels min egen dator med *WinXP SP2 med IIS 5.1* och även en *Win 2003 Server Enterprise Edition* som jag har tillgång till, med exakt samma resultat på bägge.

Bifogar classen här om någon har nytta av den.
Vad kan det bero på\`?

Bilagor:

- [reg_exp.txt](https://www.webforum.nu/a/2154.txt)

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

## #5 — MickeA.com, 2007-04-09T07:42Z

Ingen som har nån aning om vad jag ska göra?
Det verkar alltså som om de objekt jag öppnar inte stängs ordentligt.
Det är sidan "Kontakta" som strular till det, sidan funkar kanon fram tills att jag går in på den sidan, då blir allt trögt som attan och sidan gör timeout ända tills jag startar om IIS.
Här är min kod:

```
<!--#include file="css/funcs.asp"-->
<!--#include file="css/w3_parser.asp"-->
<%
'---------------
' DBMS-INST.
'--------------------------------------------------
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open(dbms)
'--------------------------------------------------
%>
<table cellpadding="0" cellspacing="0" style="width: 395px;">
<tr>
<td class="bTxt" style="padding-bottom: 15px; font-size: 11pt; vertical-align: top;"><b>Adress:</b></td>
<td class="bTxt" style="padding-bottom: 15px; width: 290px;">
<%
sSql =	"SELECT " &_
	"tText " &_
	"FROM tbl_content " &_
	"WHERE tSite = 'pCon_Addr' " &_
	"LIMIT 1"
Set rs = oConn.Execute(sSql)
If Not rs.EOF Then
	Response.Write(wfParser.Parse(rs("tText")))
End If
rs.Close : Set rs = Nothing
%>
</td>
</tr>
<tr>
<td class="bTxt" style="padding-bottom: 7px; font-size: 11pt;"><b>Besöksadress:</b></td>
<td class="bTxt" style="padding-bottom: 7px; width: 290px;">
<%
sSql =	"SELECT " &_
	"tText " &_
	"FROM tbl_content " &_
	"WHERE tSite = 'pCon_PG' " &_
	"LIMIT 1"
Set rs = oConn.Execute(sSql)
If Not rs.EOF Then
	Response.Write(wfParser.Parse(rs("tText")))
End If
rs.Close : Set rs = Nothing
%>
</td>
</tr>
<tr>
<td class="bTxt" style="padding-bottom: 7px; font-size: 11pt;"><b>Bankgiro:</b></td>
<td class="bTxt" style="padding-bottom: 7px; width: 290px;">
<%
sSql =	"SELECT " &_
	"tText " &_
	"FROM tbl_content " &_
	"WHERE tSite = 'pCon_BG' " &_
	"LIMIT 1"
Set rs = oConn.Execute(sSql)
If Not rs.EOF Then
	Response.Write(wfParser.Parse(rs("tText")))
End If
rs.Close : Set rs = Nothing
%>
</td>
</tr>
<tr>
<td class="bTxt" style="padding-bottom: 7px; font-size: 11pt;"><b>Telefon:</b></td>
<td class="bTxt" style="padding-bottom: 7px; width: 290px;">
<%
sSql =	"SELECT " &_
	"tText " &_
	"FROM tbl_content " &_
	"WHERE tSite = 'pCon_Tele' " &_
	"LIMIT 1"
Set rs = oConn.Execute(sSql)
If Not rs.EOF Then
	Response.Write(wfParser.Parse(rs("tText")))
End If
rs.Close : Set rs = Nothing
%>
</td>
</tr>
<tr>
<td colspan="2" class="bTxt" style="padding-bottom: 5px; font-size: 11pt; vertical-align: top;"><b>Telefontider:</b></td>
</tr>
<tr>
<td colspan="2" class="bTxt" style="padding-bottom: 25px; width: 300px;">
<%
sSql =	"SELECT " &_
	"tText " &_
	"FROM tbl_content " &_
	"WHERE tSite = 'pCon_TeleTime' " &_
	"LIMIT 1"
Set rs = oConn.Execute(sSql)
If Not rs.EOF Then
	Response.Write(wfParser.Parse(rs("tText")))
End If
rs.Close : Set rs = Nothing
%>
</td>
</tr>
<tr>
<td class="dLine" colspan="2" style="padding-bottom: 5px;"><img src="pics/spacer.gif" style="border: 0px;" alt="Streckad Linje"></td>
</tr>
<tr>
<td colspan="2" class="bTxt" style="text-align: left; font-size: 11pt; padding-left: 2px; padding-bottom: 2px; padding-top: 0px;">
	<b>Hitta hit:</b>
</td>
</tr>
<tr>
<td colspan="2" class="bTxt" style="text-align: left; font-size: 11pt; padding-left: 2px; padding-bottom: 2px; padding-top: 0px;">
<%
sSql =	"SELECT " &_
	"tText " &_
	"FROM tbl_content " &_
	"WHERE tSite = 'Find_Us' " &_
	"LIMIT 1"
Set rs = oConn.Execute(sSql)
If Not rs.EOF Then
	Response.Write(wfParser.Parse(rs("tText")))
End If
rs.Close : Set rs = Nothing
%>
</td>
</tr>
<tr>
<td class="dLine" colspan="2"><img src="pics/spacer.gif" style="border: 0px;" alt="Streckad Linje"></td>
</tr>
<%
oConn.Close : Set oConn = Nothing
Set wfParser = Nothing
%>
```

Nu kör jag ju objekten *rs* och *wfParser* flera gånger efter varandra, men jag stänger föregående innan jag öppnar nästa, så jag fattar inte riktigt vad som ska till för att det ska funka.

Förslag?

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

## #6 — emission, 2007-04-09T15:02Z

Läs ut alla värdena i en fråga

```
SELECT tText,tSite FROM tbl_content WHERE tSite IN ('pCon_Addr','pCon_PG','pCon_BG','pCon_Tele','pCon_TeleTime','Find_Us')
```

Fyll på ett dictionary

```
set dict=Server.CreateObject("Scripting.Dictionary")
do until rs.eof
   dict.add cstr(rs("tSite")),cstr(rs("tText"))
rs.movenext : loop
```

och använd dictionaryt i stället

```
If dict.Exists("pCon_TeleTime") Then
	Response.Write(wfParser.Parse(dict("pCon_TeleTime")))
End If
```

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

## #7 — MickeA.com, 2007-04-09T16:57Z

Ah, det där kanske kan vara något.
Ska kolla lite mer på det, tack!

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

## #8 — MickeA.com, 2007-04-15T12:15Z

Nä, det måste vara något annat fel i min fil, för det funkar till en början, men så småningom så hänger sig hela sajten, bara när man besökar "contact.asp", skitkonstigt.

Jag hittar inga fel i filen, men jag bifogar den här, så om någon har lust att kolla igenom den vore ingen gladare än jag.

Tack på förhand!

Bilagor:

- [contact.asp.txt](https://www.webforum.nu/a/14347.txt)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/158832-databaskoppling-mot-mysql-i-funktion
