ironheadMedlem sedan mars 20011 346 inlägg 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
jboy_87Medlem sedan aug. 20011 099 inlägg du kan includera en fil iustället med databaskopplingen!!!
@ndersMedlem sedan juni 200032 969 inlägg 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,
spangoMedlem sedan juni 20008 205 inlägg Det är ju möjligt att stoppa in objektet i Session, men det känns som om det glufsar i sig en del systemresurser...
@ndersMedlem sedan juni 200032 969 inlägg 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,
ironheadMedlem sedan mars 20011 346 inlägg *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
PaceMedlem sedan juni 20019 024 inlägg Frågan är väl egentligen varför du behöver ha databaskopplingen öppen för flera sidor?
CatZMedlem sedan jan. 20022 440 inlägg 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å ?
@ndersMedlem sedan juni 200032 969 inlägg 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,
spangoMedlem sedan juni 20008 205 inlägg
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.
ironheadMedlem sedan mars 20011 346 inlägg ...med andra ord, så finns det ingen bra lösning om man vill globalisera sin komponent?!
PatrikBMedlem sedan mars 20002 836 inlägg 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
ironheadMedlem sedan mars 20011 346 inlägg jo, jag vet...men i detta fallet var det just så.
:l
PatrikBMedlem sedan mars 20002 836 inlägg 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