Uwe Nohl: Fehler im Code? SQL Anweisung hängt am "rs.Update"

Beitrag lesen

Hallo Tomcat,

habe Deinen Code durchgeguckt ...

Allerdings hängt er sich bei diesem Code beim letzten "rs.Update" >>(Teil 2) auf. Und zwar mit der Fehlermeldung:

Microsoft OLE DB Provider for ODBC Drivers-Fehler '80040e2f'

[Microsoft][ODBC Microsoft Access Driver]Fehler in Zeile

/infonet_working/Aendern/MA_change_update.asp, Zeile 109

Zeile 109 wäre dann "rs.Update"

Allerdings kann ich den Fehler nicht finden (mit meinen bescheidenen Kenntnissen ;-))

Zweiter Teil (selbe Page)
___________________________________________________________________
  <%

»»  Set conn = Server.CreateObject("ADODB.Connection")
»»  conn.open "LundbeckMitarbeiter","",""
»»  Set rs = Server.CreateObject("ADODB.Recordset")
»»  SQL = "Select * FROM Hardware Where PersNr ='" & pers & "'"
»»  rs.open sql, conn, 3, 3

die Verzweigung if else end if wird sicher nicht schuld sein

rs.AddNew
   rs.Fields("Vorname") = Request.Form("Vorname")
   rs.Fields("Nachname") = Request.Form("Nachname")

sitze zwar gerade zuhause wo ichs nicht nachpruefen kann, aber ich
glaube mich zu erinnern, dass ich auch schon mal den gleichen Fehler gebaut habe ...
------»»  rs.Update ------------- koennte der Schuldige sein ...
glaube, das brauchst Du nach der Recordsetobjekt-Methode '.AddNew nicht' mehr (da muessen doch keine Daten ueberschrieben werden, es ist doch eh klar, dass ein neuer Datensatz geschrieben wird), lass das mal versuchsweise weg...

»»  conn.close

%>
  <table border="1" width="100%">
    <tr>
      <td width="100%">Die Daten wurden geändert.</td>
    </tr>
  </table>
</body>

andere Frage: gibt es einen zwingenden Grund, Connection- und Recordset-Objektinstanz doppelt zu erzeugen? Nach meiner Erfahrung
ist es auch nicht gut, unter IIS Datensatz- und Verbindungsobjekte nicht zu zerstoeren (auch wenn MS immer behauptet, VB tue dies langsam, aber sicher). In solchen Umgebungen wie ASP und IIS habe ich meine Anwendung erst stabil gekriegt , seit ich konsequent

rs.close
set rs = nothing
conn.close
set conn = nothing

verwende.

So, hoffentlich hatte ich recht, wird spaet
tschuess
Uwe