Hallo!
�ber Eleganz l�sst sich ja streiten, aber ...
Der sicherste und schnellste Weg besteht darin, dass man in VBS ein
Array mit den Spaltennamen und eins mit den Werten anlegt und diese
beiden Arrays als Parameter der Methode rs.AddNew einsetzt.
Der Vorteil liegt darin, dass man sich um Konvertierungen von Datums-
oder Boolean- oder W�hrungsfelder gar nicht k�mmern muss. Das macht ADO
nun mal deutlich zuverl�ssiger und schneller als irgendeine Funktion in
VBS.
Ich nutze daf�r eine Funktion. Hier das "Grundger�st":
function dataInsert(pTable, pFields, pValues)
dim rx: set rx = Server.CreateObject("ADODB.Recordset")
rx.Open "select * from [" & pTable & "] where 1 = 0" , _
db, adOpenStatic, adLockOptimistic, adCmdText
rx.AddNew pFields, pValues
dataInsert = rx.Fields("id").value
rx.Close: set rx = nothing
end function
In dieser Funktion wird auch direkt der AutoIncrement-Wert ermittelt.
Zus�tzlich habe ich noch Fehlerbehandlung und Protokollfunktionen (f�r
Access) definiert. Und f�r UPDATE, DELETE und UPDATEINSERT gibt es
ebenfalls eigene Funktionen.
Eleganz bedeutet hier f�r mich, dass der Code unabh�ngig von der
verwendeten Datenbank und von Gebietsschemaeinstellungen ist und dar�ber
hinaus auch noch deutlich schneller als die Zeichenkettenoperationen in
VBS l�uft.
Freundliche Gr��e
Joachim van de Bruck
| [aspdedatabase] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp