Ist es notwendig, zu schließen, ein Adodb.recordset-Objekt, bevor Sie es zu nichts?
Dim rs as ADODB.Recordset
set rs = ReturnARecordset 'assume ReturnARecordset does just that...
'do something with rs
rs.Close
set rs = Nothing
Ist es notwendig, rufen Sie rs.Schließen Sie, bevor Sie es zu nichts?
Edit: Wir haben eine Globale Verbindung, die wir offen halten, für die Dauer der Anwendung und alle recordset-Objekte verwenden Sie diese gleiche Verbindung. Ich sehe zwei Antworten weiter unten reden über die Notwendigkeit, recordsets, um sicherzustellen, Anschlüsse Links sind nicht offen. Mir das klingt wie eine Menge dummes Gerede, weil die verbindungen werden kontrolliert mit connection-Objekte, nicht-recordset-Objekte richtig? Aber bitte lassen Sie mich wissen, wenn ich mich hier etwas fehlt...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur deshalb Berufung
Close
explizit ist, wenn Sie nicht sicher sind, ob das recordset-Objekt verwiesen wird, die von irgendwo in Ihrem Projekt, in der Regel durch eine schlampige Codierung.Letzte Zeile ist, soll kündigen, die recordset-Instanz ohne Aufruf
Close
ausdrücklich, es sei dennMyControl
hält eine zusätzliche Referenz und damit die normale Verschleiß-down. AufrufClose
aufrs
wird sicherstellen, dassMyControl
nicht verwenden können, den Verweis für alles, was nützlich, Absturz in Flammen auf in der Zwischenzeit.Close
ausdrücklich die Einstellung local VerweiseNothing
sind Teile des gleichen Cargo-Kult-Programmierung, internet-Bad der code ist voll. Verwenden Sie gesunden Menschenverstand, das beste wäre um zu testen, für Löcher in Ihrer speziellen Umgebung.Ja, das tut mehr als nur die Kraft eines garbage collection-es erzählt auch der server die Verbindung beendet wird, dies verhindert, dass mehrere offene verwaiste verbindungen (Sie werden schließlich time-out von sich selbst), aber es ist immer am besten Praxis, um Sie zu schließen aus.
Dies ist besonders offensichtlich, wenn ADODB ist über eine remote-Verbindung anstatt einer lokalen eine.
Können ODBC-oder OLE DB-Pooling Probleme, die eine Verbindung öffnen und binden an einen pool-Steckplatz:
Sehen Pooling in der Microsoft Data Access Components
Und wenn es irgendeine chance .Net-Interop beteiligt sind vorsichtig sein: es gibt viele Warnungen über Probleme, verursacht durch die faulen Weg-COM-Objekt (oder enthaltene Objekt) Freisetzung erfolgt unter .Net-garbage collection.