Zum Einfügen von Datensätzen in eine Access-Datenbank gibt es grundsätzlich zwei Möglichkeiten:
INSERT INTO und Add.New
Wo liegt der Unterschied?
INSERT INTO benötigt kein Recordset, um einen Datensatz hinzufügen, AddNew jedoch schon. Meistens werde ich aber kein Recordset benötigen, deshalb ist INSERT INTO besser, schneller, kürzer.
Gehen wir davon aus, daß sich ein User registrieren möchte.(Er füllt ein Formular aus) AddNew kann hier die bessere Methode sein. Die gerade gespeicherten Daten können unmittelbar aus der Datenbank gelesen werden. Nützlich bei einer Anmeldebestätigung, z.B.: Herrzlich Willkommen, Sie sind registriert unter <Daten>...
Hier die Code-Beispiele:
insertinto.asp
<% '----------- Connection-Objekt instanziieren set conn = server.CreateObject("ADODB.Connection") strConn = "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;" strConn = strConn & "Data Source=" & server.MapPath("./db/") & "dbkunden.mdb;" '----------- Connection öffnen conn.Open strConn strInsert = "INSERT INTO Kundenliste(Name, Vorname) VALUES ('Elbl', 'Bernhard')" '----------- Datensatz hinzufügen conn.Execute strInsert '----------- Objekte zerstören set conn = nothing %> |
Der folgende Code zeigt, wie die gespeicherten Daten gleich abgerufen werden können. Bei INSERT INTO müßte man erst ein neues Recordset und den entsprechenden SQL-String schreiben, um nach dem neuen Datensatz zu suchen.
addnew.asp
<% '----------- Connection-Objekt instanziieren set conn = server.CreateObject("ADODB.Connection") strConn = "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;" strConn = strConn & "Data Source=" & server.MapPath("./db/") & "dbkunden.mdb;" '----------- Connection öffnen conn.Open strConn '----------- Recordset instanziieren set rs = server.CreateObject("ADODB.Recordset") '----------- Recordset öffnen (Cursortype auf Änderungen zu lassen) rs.Open "Kundenliste", conn, 3, 3 '----------- Datensatz hinzufügen rs.AddNew rs("Name") = "Elbl" rs("Vorname") = "Bernhard" '----------- Update speichert die Informationen in der DB rs.Update '----- Hier der Vorteil von AddNew '----------- Ausgabe des gerade gespeicherten Datensatzes Response.Write rs("ID") Response.Write rs("Name") Response.Write rs("Vorname") '----------- schließen des Recordsets rs.Close '----------- Objekte zerstören set rs = nothing set conn = nothing %> |