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

Antwort per Email an