Markus: Datensätze löschen

Beitrag lesen

Hi Leute

Verwende folgende Variante um Datensätze aus einer DB zu löschen funktioniert auch:

<%

Dim conn
Dim strConnection
Dim strSQL

strConnection = Application("Immo_ConnectionString")
Set conn = CreateObject("ADODB.Connection")

conn.Open strConnection

strSQL = "DELETE FROM Immo WHERE ID =" & Request.Form("ID")

conn.Execute strSQL
conn.Close

Set conn = Nothing
%>

Nun es funktioniert soweit gut nur habe ich gelesen man sollte Zwei weitere Objekte einfügen ein Beispiel von:

Const adCmdText = 1
Const adExecuteNoRecords = 128
nRowsAffected = CLng(0)
conn.Execute "DELETE FROM titleauthor WHERE title_id='BU2075'", _
    nRowsAffected, adCmdText Or adExecuteNoRecords

Response.Write nRowsAffected & " Records gelöscht"

Hier die Erklärung dazu:

Zitat:
Der Grund, warum ich hier von einer hochoptimierten Seite rede, ist folgender: ich teile der Execute Methode sehr genau mit, was sie von mir bekommt (adCmdText), und was ich von ihr nicht will (adExecuteNoRecords). Der Vorteil Nummer Eins ist, ADO muß nicht herausfinden, welche Art von Kommando ich absetzen will. Der Vorteil Nummer Zwei ist, ADO erstellt kein Recordset Objekt umsonst, was eine deutliche Beschleunigung bringt.

Erwähnenswert ist sicherlich auch noch die Variable nRowsAffected. Diese liefert mir die Anzahl der Datensätze, die vom DELETE Kommando gelöscht wurden. Damit kann man eine nette Benutzerausgabe generieren.

Zitat Ende

Es funktioniert auch so ohne diese 2 Konstanten was bringt es u welche Nachteile können entstehen.. kann es nämlich nicht in meine SQl Zeile einfügen:

strSQL = "DELETE FROM Immo WHERE ID =" & Request.Form("ID")

gehört oben eingefügt/angehängt: (adCmdText Or adExecuteNoRecords)
 aber wie?

Das nRowsAffected bringt mir auch nicht viel da ich ja immer nur einen Datensatz lösche..

Ist der Code sonst OK?

kann ich das:

conn.Close

Set conn = Nothing

auch wegglassen ist nämlich hier nicht angeführt:

http://www.aspheute.com/artikel/20001127.htm

MFG
Markus