---
title: "Global komponent"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/38420-global-komponent"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "ironhead"
published: "2002-02-25T19:37:44.000Z"
updated: "2002-02-27T14:28:13.000Z"
replies: 13
views: 302
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/38420-global-komponent"
---

# Global komponent

## #1 — ironhead, 2002-02-25T19:37Z

Hej hopp!

Jag har skapat en komponent i VB. Det enda den gör/ska göra är att öppna en databaskoppling (av diverse anl.)

Jag anropar den via min ASP-sida.
Problemet är att jag vill att min databaskoppling i komponenten skall vara "global"...alltså när jag anropar komponenten vill jag att den ska gälla för flera sidor.

Finns det nåt sätt att göra en koppling i en komponent global?
 :stud

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

## #2 — jboy_87, 2002-02-25T19:40Z

du kan includera en fil iustället med databaskopplingen!!!

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

## #3 — @nders, 2002-02-25T19:40Z

Nej.

När en asp-sida körts klart förstörs alla objekt som inte redan stängts och förstörts i din kod.

Mvh,

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

## #4 — spango, 2002-02-25T20:18Z

Det är ju möjligt att stoppa in objektet i Session, men det känns som om det glufsar i sig en del systemresurser...

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

## #5 — @nders, 2002-02-25T20:26Z

Jag hoppades att ingen skulle nämna något om att stoppa in connectionobjekt i sessions...

Det är *inte* att rekommendera. Har man lite trafik på webbplatsen blir det lätt några öppna connections då, eftersom sessionobjektet normalt har en timeout-tid på 20 minuter.

Räkna på det, jag ryser så länge.

Mvh,

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

## #6 — ironhead, 2002-02-25T21:48Z

\*hrmmm\* sessioner är nog inte att tänka på.
Kan man använda global.asa och application för att bolla kopplingen?
eller är jag helt ute å cyklar?
 :q

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

## #7 — Pace, 2002-02-25T21:52Z

Frågan är väl egentligen varför du behöver ha databaskopplingen öppen för flera sidor?

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

## #8 — CatZ, 2002-02-26T08:11Z

session

Såg ni snacka skit om sessions :) Bara en liten fråga om det. Låt säga jag har MAX 3 sessions öppna samtidigt. 3 admin konton. Spelar väl inte så mycket roll för prestandan då ?

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

## #9 — @nders, 2002-02-26T08:14Z

Jag har inte snackat skit om sessions. 
Man skall dock akta sig för att lagra objekt i sessions.

Vanliga sessionsvariabler kan du använda i stort sett hur många du vill av. Sessions är bra. :)

Mvh,

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

## #10 — spango, 2002-02-26T09:14Z

> *Ursprungligen av ironhead*  **\*hrmmm\* sessioner är nog inte att tänka på.
> Kan man använda global.asa och application för att bolla kopplingen?
> eller är jag helt ute å cyklar?**

Problem är inte att objektet aldrig försvinner, utan att det försvinner efter så lång tid. Kopplingen försvinner (eller borde i.a.f. försvinna...) när sessionen avslutas. Om man skulle göra något med global.asa så skulle det inte inträffa förrän sessionen avslutas, så det blir det liksom ingen större skillnad.

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

## #11 — ironhead, 2002-02-27T07:47Z

...med andra ord, så finns det ingen bra lösning om man vill globalisera sin komponent?!

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

## #12 — PatrikB, 2002-02-27T10:54Z

Just connections och recordset ska inte vara öppna mer än nödvändigt. 

Vitsen med komponenter är inte att göra "global" variabler som ligger över alla sidor utan att man kan bygga en helt annan typ av skalbarhet och flerskiktslösningar med alla dessa fördelar.

cya,
PatrikB

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

## #13 — ironhead, 2002-02-27T12:44Z

jo, jag vet...men i detta fallet var det just så.
 :l

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

## #14 — PatrikB, 2002-02-27T14:28Z

Men motfrågan blir: varför skapa en globalvariabel av conn objectet?
Det strider mot all programmering!

Det enda rätta är att öppna och stänga så snabbt som möjligt på alla sidor den ska användas på.
Att göra den global kan vara att inkludera en funktion som öppnar databasen och returnerar ett öppet connection object och en funktion för att stänga och förstöra objectet och sedan på varje sida anropa dessa funktioner, för att öppna och stänga connection mot db.

\[r\]
Eller att i komponenten fixa all logik som behövs och därinne öppna connectionet och returnera det datat man vill åt.
Det enda du då behöver skicka in i komponenten är själva connectionsträngen.

Detta kan se ut så här:

```
<%
Set MittObject = Server.CreateObject("Mina.Classer")
	Mittobject.ConnectionString = Appliction("ConnectionString_Kunder")
	Set objRS = MittObject.GetCustomer()
	'#-- LOOPA RECORDSETET --
	Set objRS = Nothing
Set MittObject = Nothing
```

\[/r\]

cya,
PatrikB

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/38420-global-komponent
