med close så stänger du bara det aktiva objektets kopploing till databas (eller annat), med nothing så nollställer(?) du objektet helt...
------------------
Kom hem till mig...
11 svar · 192 visningar · startad av jontas
Vad är skillnaden på
Set connection = Nothing
och...
connection.close ?
När används respektive ?
Jag vet så mycket att det är till för att stänga öppna anslutningar.
N
med close så stänger du bara det aktiva objektets kopploing till databas (eller annat), med nothing så nollställer(?) du objektet helt...
------------------
Kom hem till mig...
Hallå vide!
Så vilket är att föredra isf och vart lägger jag in "stängningen" i koden?
Som nedan elr?
Set Connection= bla bla
SQL = "select * from databas order by id"
Set RS = Databas.Execute(SQL)
Set Connection = Nothing
[Redigerat av jontas den 24 okt 2000]
Hello,
först stänger man objektet (.Close) och sedan nollställer man det (=nothing)
cya,
PatrikB
------------------
'*********************
Response.Write("PatrikB")
Response.End
'*********************
Alltså summerer jag:
Set Connection= bla bla
SQL = "select * from databas order by id"
Set RS = Databas.Execute(SQL)
Connection.Close
Set Connection = Nothing
Lycka till!
------------------
Mvh
Patrik aka Brimba
Brimbas lille ställe
Vad händer om jag inte nollställer?
Finns det chans för att servern krachar du eller?
------------------
Erki
http://www.tapiren.net - Din Community på Internet!!
Vad jag har fattat så är det mycket viktigt att alltid stänga sina objekt efter att man har använt dem för att undvika överbelastning vilket i sin tur kan leda till tillgänglighetsproblem
för webbplatsen.
Och det vill vi ju inte ha :)
...Ja servern kraschar efter ett tag när den har tillräckligt många objektreferenser öppna.
Se till att både stänga och sätta till nothing, iaf till asp+ är släppt där stänger servern själv alla öppna referenser till objekt...
------------------
Fredrik Klarqvist
fredrik.klarqvist@swipnet.se
http://server.webwerkstaden.se/fredde/
Vad jag har fattat så är det mycket viktigt att alltid stänga sina objekt efter att man har använt dem för att undvika överbelastning vilket i sin tur kan leda till tillgänglighetsproblem
för webbplatsen.
När sidan är färdigexekverad så skall servern stänga alla objekt (som inte lagt i en session eller application), detta betyder inte att du skall sluta stänga dina objekt, utan ta lär dom av detta:
JAg har märkt att många väljer att stänga sina objekt sist på sidan vilket oftast är slöseri med resurser. Om du t.ex skall hämta en hel post ur en databas, så skall du hämta ut dessa till lokala variabler så gör det direkt och stäng objekt direkt efter:
strSQL = "Select * from tblUSers where userid = " & request.form("userid")
Set rsUser = conObj.execute(strSQL)
strNamn = rsUser("namn")
strEmail = rsUser("email")
Set rsUser = Nothing
conObj.close
Set conObj = Nothing
...' fortsättning på sidan...
... För om det är en lång sida så kommer ju de objekten var öppna helt i onödan...
Men kom ihåg att det ALLTID är god sed att stänga sina objekt, även om ni skulle gjort det på slutet på sidan i alla fall...
Mvh, Vide
------------------
Kom hem till mig...
Hello,
skulle vilja tillägga att om man hämtar fler recordsets så ska kan man stänga(connection objectet, .Close) mellan varje recset ... om de ej kommer exakt efter varandra. När man sedan hämtat båda (alla recset så stänger man och "förstör" connectionen objectet
tex:
...
Set objConn = Server.CreateObj....
objConn.Open ConnStr
Set recset = Server.CreateObj....
recset.Open strSQL, objConn
.......
kod, mer kod
.......
recset.Close
objConn.Close
...
HTML kod, eller annan typ av kod
...
objConn.Open ConnStr
recset.Open strSQL2, objConn
...
kod, mer kod
...
recset.Close
Set recset = nothing
objConn.Close
Set objConn = nothing
Sorry ... vart nog lite mycket kod/text
cya,
PatrikB
------------------
'*********************
Response.Write("PatrikB")
Response.End
'*********************
[Redigerat av PatrikB den 27 okt 2000]
Så det räcker inte med att skriva:
rs.close
conn.close?
jag testade med att göra så här:
rs.close
rs = nothing
conn.close
conn = nothing
men det fungerade inte!
Hello,
framför conn = nothing eller rs = nothing måste du skriva - set
annars funkar det inte ....
cya,
------------------
'*********************
Response.Write("PatrikB")
Response.End
'*********************