Rs.Close.. Für was eigentlich ?
ASP Beginner :(
- asp.net
0 Stephan Huber0 Stefan Falz0 Uwe Nohl
Also ich möchte Euch fragen wozu man den Recordset oder die ODBC Verbindung schliessen sollte?
Es funktioniert ja auch ohne, bitte klärt mich auf, wo die vor oder nachteile sind.
So mache ich das immer(sagt mir bitte wie ist es richtig):
Conn="Meine_ODBC_Verbindung"
' So Verbindung Steht.
' 1. Abfrage
SQLstmt="SELECT * FROM irgendwas"
Set Rs = conn.execute(sqlstmt)
'RS ist offen.
DO WHILE NOT rs.EOF
response.write("meinfeld")<br>
<%
rs.movenext
loop
%>
' 2. Abfrage
SQLstmt="SELECT * FROM namenliste"
Set Rs = conn.execute(sqlstmt)
'RS ist offen.
DO WHILE NOT rs.EOF
response.write("einname")<br>
<%
rs.movenext
loop
%>
OK. So wie es hier oben ist funktioniert es einwandfrei, kann ein Profi von Euch den oberen code kopieren und posten so wie es richtig sein sollte? Vielen Dank!
Hallo Namenloser,
Also ich möchte Euch fragen wozu man den Recordset oder die ODBC Verbindung schliessen sollte?
Es funktioniert ja auch ohne, bitte klärt mich auf, wo die vor oder nachteile sind
Es funktioniert, weil die meisten Datenbankserver nach einer gewissen Zeit ohne Anfragen die Connection automatisch killen (die Programmierer der Server sind sich wohl bewußt, daß die meisten User faule Säcke sind, die die Connection nicht wieder schließen ;-).) Wenn Du wirklich viel Traffic hast, ist es aber besser, Du schließt die Con, bevor Sie der db-Server abschießt, um Ressourcen freizugeben, bei normalen Sites ohne übermäßigen Traffic spielt das keine Rolle
Viele Grüße
Stephan
HAllo Stephan,
Hallo Namenloser,
Also ich möchte Euch fragen wozu man den Recordset oder die ODBC Verbindung schliessen sollte?
Es funktioniert ja auch ohne, bitte klärt mich auf, wo die vor oder nachteile sind
Es funktioniert, weil die meisten Datenbankserver nach einer gewissen Zeit ohne Anfragen die Connection automatisch killen (die Programmierer der Server sind sich wohl bewußt, daß die meisten User faule Säcke sind, die die Connection nicht wieder schließen ;-).) Wenn Du wirklich viel Traffic hast, ist es aber besser, Du schließt die Con, bevor Sie der db-Server abschießt, um Ressourcen freizugeben, bei normalen Sites ohne übermäßigen Traffic spielt das keine Rolle
Wichtiger als das Schliessen des Recordsets (oder der Connection) ist
das Terminieren des Objekts (Set obj = Nothing), da dieses Objekt
den Speicher doch ziemlich belastet und nicht (auch wenns in der Doku
von MS so steht) automatisch beim Beenden des Skripts zerstört wird.
Auf Dauer wird die Performance doch ziemlich beeinträchtigt, daher
gilt:
<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "DSN", "UID", "PWD"
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open SQL, objConn
... ' Sonstiger ASP-Code
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>
Das gilt natürlich auch für alle anderen Objekte, die erstellt wurden
(zumindest Set obj = Nothing, da manche Objekt ja keine Methode Close
haben)
Tschau, Stefan
Hallo,
bloss immer penibel alle Objekte schliessen und zerstören!! Ich habe bitteres Lehrgeld bezahlen müssen (alle 2 Wochen Server wieder durchstarten, bis ichs begriffen hatte, das man das wirklich muss!).
Set rs = nothing ist ein Muss!!
Gruss
Uwe Nohl