Der Unterschied zwischen conn.execute und rs.open besteht darin, dass die Verwendung der Methoden conn.execute, rs.open und command.execute sehr unterschiedlich ist.
Normalerweise können Sie zum Erstellen eines Datensatzes
Set rs=conn.execute (SQL)
verwenden.oder direkt
rs=CONN.execute(SQL)
und
Set rs=Server.CreateObject("ADODB.Recordset")
rs.open SQL,CONN,0,1 oder rs.open SQL,CONN
In diesem Fall ist die Leistung von Open normalerweise etwas besser als die des vorherigen.
(Das Befehlsobjekt ist flexibler und hat einen größeren Ausführungsbereich.)
Mit CONN.execute können Sie den nächsten Satz rs=conn.execute(SQL) direkt ausführen, ohne ihn zu schließen.
Aber die Leistung und Geschwindigkeit werden stark reduziert!!
Es ist ungefähr 2- bis 5-mal langsamer!! (Ich habe dies persönlich 1000 Mal in der MSSQL-Schleife getestet. Wenn Sie es nicht glauben, testen Sie es sofort selbst), also schließen Sie es unbedingt, bevor Sie das nächste Mal rs=conn.execute ausführen Es ist
eine gute Idee, Gewohnheit!
Bei Verwendung von rs rs.open eines einzelnen Objekts muss die Anzeige vor dem Öffnen des nächsten Datensatzes geschlossen werden, da sonst ein Fehler auftritt. Die Geschwindigkeit ist bei SQL, CONN, 0, 1 grundsätzlich gleich,
was mir gefällt um ein CreateObject(" adodb.recordser" zu verwenden (Wenn keine Notwendigkeit besteht, mehrere Datensatzsätze zu verschachteln, sind mehrere Datensätze kein Problem!)
Dann nutzen Sie es von Anfang bis Ende!!!
Öffnen und schließen. Der letzte Satz rs=nothing geht zu Ende
!
Öffnet man die Schatzkiste, sieht man alles im goldenen Licht!
Es gibt viele Situationen, in denen Sie open! verwenden müssen.
Und conn.execute möchte den Film unter dem schwarzen Tuch ändern~~~sneak~~Sehr einfach!!!
Zum Beispiel:
rs1.open SQL1,conn,0,1
rs.open SQL,conn,1,3
Wenn rs(0)<0, dann ist rs(0)=0
rs(1)=aaa
rs(2)=bbb
rs.update 'Aktualisieren Sie den Datensatz und schreiben Sie ihn in die Datenbank.
rs.addnew 'Fügen Sie einen neuen Datensatz hinzu
rs(0)=1
rs(1)=ddd
rs(2)=kkk
rs.update
id=rs(3) rs(s) 'Das verwendete Feld ist die automatische Nummer id des neuen Datensatzes //Dies wird sehr häufig verwendet,
um einen neuen Datensatz in Bezug auf rs1 hinzuzufügen id rs.
rs1("id"=id
rs1(1)=...
..
rs1.update
rs1.close:set rs1=nothing
rs.close:set rs=nothing
Wenn CONN.execute für den oben genannten Vorgang verwendet wird, werden vier CONN.executes verwendet.
CONN.execute("update .."
CONN.execute("in Tabelle 1 einfügen:"
rs=CONN.execute("Neue automatische ID auswählen"
CONN.execute("in Tabelle 2 einfügen"
Welche Methode ist auf den ersten Blick logischer und klarer?
Es gibt auch eine interessante Möglichkeit, Recordset Open zum Aufzeichnen zu verwenden!!
Es ist etwas verwirrend, wenn ich darüber nachdenke.
Set rs=server.CreateObject("Adodb.recordset"
Setze rs=server.CreateObject("Adodb.recordset"
rs.open SQL1,CONN
rs.open SQL2, CONN
legt zwei Objekte mit demselben Namen gleichzeitig fest, um zwei Datensatzsätze zu öffnen, und sie sind verfügbar!
„Solange die Spaltennamen mit den Metadaten in diesen beiden Datensätzen übereinstimmen.“
„Dann ist der Betrieb normal!!
Erweitern Sie
Set rs=server.CreateObject("Adodb.recordset"
Setze rs=server.CreateObject("Adodb.recordset"
Setze rs=server.CreateObject("Adodb.recordset"
Setze rs=server.CreateObject("Adodb.recordset"
rs.open SQL1,CONN
rs.openSQL2,CONN
rs.open SQL3,CONN
rs.open SQL4, CONN,
nicht ausprobiert,was größer als zwei rs mit demselben Namen ist!!
Es fühlt sich ein bisschen wie eine gemeinsame Abfrage mit SQL an und öffnet dann den Datensatz~~~
Ich habe es schon einmal so benutzt!! Es sollte nicht blendend sein!!
===============
Wann was verwenden?
Das basiert nur auf meiner persönlichen Erfahrung:
Wenn Sie die Datenbank nur einmal berühren müssen, verwenden Sie „Ausführen“.
Wenn Sie komplexe Operationen an der Datenbank durchführen möchten, verwenden Sie am besten rs.open