ASP Beginner :(: Rs.Close.. Für was eigentlich ?

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!

  1. 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

    1. 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

      1. 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