webForumDet fria alternativet

close och nothing, skillnad?

ASP

4 svar · 232 visningar · startad av iceM2

Medlem sedan mars 2001243 inlägg
Frågan#1

Det sägs att close helt logiskt kan stänga ett recordset och en koppling till en databas för att man sedan kan köra frågor till det ändå. Med set = nothing frigörs det från minnet, vad menas med det?

Jag skulle vilja veta när man ska använda vad??? Någon expert som har tips om detta?

------------------
"Kom igen killar, nu värmer ni upp i rektangulära cirklar"

Medlem sedan mars 20011 880 inlägg
#2

Enligt alla konstens regler, så bör svaret vara så här:
Close är lika med att du stänger objectet, Set Noting är lika med att du säger till applikationen att släppa objectet ur minnet.
DVS:
RS.Close
Set RS=Noting
Connection.Close
Set Connection=Noting.
RS är då lika med recordsetet och Connection är lika med din databaskoppling.
Någonting sådant skulle jag tro är ett ganska så bra svar..

------------------
saw
__
saw@songer.com
www.saw.songer.com
_
_

Medlem sedan mars 2001243 inlägg
#3

Okej, ungefär vad jag visste sedan tidigare men när man använder close ska man väl så gott som alltid också använda nothing?

recset.close
set recset = nothing

------------------
"Kom igen killar, nu värmer ni upp i rektangulära cirklar"

Medlem sedan mars 20002 836 inlägg
#4

Så fort du har använt aktuellt recordset färdig så ska det stängas, i.e: objRS.Close

Om du behöver köra fler recordset så är det bara att öppna det igen med tex:
objRS.Open strSQL, objConn, 0, 1

Det är alltså frågan om ADODB.Recordsets eftersom ett recordset skapat genom connection objectet inte stödjer funktionen/metoden .Close

När man sedan ej behöver köra fler recordsets så "släpper" man det från minnet genom - Set objRS = Nothing

Detta gäller även connection objectet. När man kört färdigt tex ett recordset och man ej behöver ha en anslutning öppen så ska den stängas, objConn.Close, varvid man igen kan öppna den med - objConn.Open

När man är säker på att inga mer anslutningar till db behövs så "släpper" man även connection objectet från minnet genom:

Set objConn = Nothing

va nog allt för denna ggn,

cya,
PatrikB

Medlem sedan mars 2001243 inlägg
#5

Mycket bra förklaring, jag tackar om jag har förstått det hela rätt så använder man recset = nothing längst ner på asp sida där man ej kommer använda några mer record set

Annars gör man bara en close...

------------------
"Kom igen killar, nu värmer ni upp i rektangulära cirklar"

281 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
138 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)