[asp] close resultset verplicht?

Pagina: 1
Acties:

  • Altaphista
  • Registratie: Juli 2001
  • Laatst online: 09:21

Altaphista

1. check manual, 2. ask

Topicstarter
Ik heb een keer gelezen dat je een database connectie in ASP eerst moet afsluiten voordat je deze op Nothing set, en nu vroeg ik me af of dat ook met een resultset moet?
Nu heb ik een resultset, en na gebruik roep ik alleen Set rs = Nothing aan, maar is het verstandig om eerst rs.close te doen, of maakt het niet uit?

Je gaat het pas zien als je het doorhebt.


Verwijderd

het kan geen kwaad, maar je connection closen sluit al je open recordsets over die connection.

Het is niet gedocumenteerd, maar recordsets en connections sluiten zichzelf wanneer ze 'out-of-scope' gaan, dwz wanneer er geen references meer naar het object zijn gedefinieerd, dus wanneer je set object = nothing doet. Dit is althans zo bij de latere ADO varianten, maar 'good practice' leert dat je alles sluit wat je opent en alles vrijgeeft wat je claimt. Als je dat aanleert als 2e natuur heb je geen problemen, wanneer een 'undocumented' feature zoals ik hierboven noemde ineens wijzigt.

  • El_BingO
  • Registratie: Juli 2001
  • Laatst online: 26-08 12:01
Je kunt ook de connection closen en toch met je resultset verder gaan.
Ik denk dat Set rs = Nothing genoeg zal zijn

Verwijderd

El_BingO schreef op 07 augustus 2002 @ 12:47:
Je kunt ook de connection closen en toch met je resultset verder gaan.
Dat kan alleen als je de ActiveConnection property van de recordset object op 'nothing' zet, en bij het creeeren ervan een clientside cursor hebt gebruikt. je krijgt dan een 'disconnected recordset'. Doe je dat niet, dan is je recordset gewoon geclosed en heb je er niets meer aan.

Verwijderd

Je moet hem volgens mij wel sluiten. Kijk anders maar eens naar DLLHOST op de server (in je Task Manager bij processes). Deze zal steeds meer geheugen gebruiken als je objecten niet afsluit.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 09:31

Crazy D

I think we should take a look.

Volgens mij loopt je dllhost zo op omdat vrij gegeven geheugen niet terug wordt gegeven aan windows (naja totdat die erom vraagt dan :), dacht ik. Maar das eigenlijk niet eens het punt, leer nou gewoon aan: wat je opent moet je sluiten, want je aanmaakt moet je opruimen. Zoals hierboven al gezegt is, dan kom je nooit voor vreemde verrassingen te staan (iig niet wat dat betreft dan). Lijkt me ook niet meer dan logisch, tenzij je natuurlijk zo iemand bent wie de deuren achter z'n kont niet dicht doet, en er wel op vertrouwd dat mama achter je aan loopt die dat wel voor je doet ;)

Exact expert nodig?


Verwijderd

DllHost cacht alle pages van je webapplicaties die in hetzelfde process draaien. Hoe meer vrij memory, hoe meer memory dllhost vreet. Dit kun je beperken in de registry of met een MEtabase setting.
Pagina: 1