Hallo!

> die sicherste Methode ist:
> 
> RS.AddNew()
> RS("id")=Request.Form("ID")
> RS.Update()
> RS.Close()
> Set RS=Nothing

Hm, das ist sehr unsicher.

Zun�chst einmal w�rde ich nie so einfach "Request.Form" in ein
Datenbankfeld schreiben. Was ist, wenn im Formular keine Eingaben
gemacht wurden? Also immer ein "cstr(Request.Form(...))" oder
"cint(...)" oder ...

Zweitens ist es viel eleganter, wenn die Werte direkt als Parameter von
RS.AddNew angegeben werden.

Im Grunde braucht man nur 3 Arrays:

dbFields = array("...", "...", "...", "...", ...) f�r die Feldnamen
dbFormat = array("cint", "cdbl", "cdate", "cstr", ...) f�r die Formate
und
redim dbValues(ubound(dbFields)) f�r die Werte

Mit einer einfachen Schleife liest man das Formular:

for i = 0 to ubound(dbFields)
   dbValues(i) = eval(dbFormat(i) & "(" & "Request.Form(""" &
dbFields(i) & """)"
next

Dann die Datenbankoperation:

RS.Open ...
RS.AddNew dbFields, dbValues
RS.Close

So etwas l�sst sich dann bequem auf beliebige Formulare und Datenbanken
erweitern. Beim Lesen aus dem Formular erfolgt die Umwandlung explizit
nach den IIS-Einstellungen (cdate, ccur, cbool) unter Ber�cksichtigung
der eingestellten LCID. Nur so kann ADO dann korrekt in das
Datenbankformat umwandeln. 

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