Armin: DELETE in ASP-Skript

Hallo miteinander,
ich hab folgendes Problem:
Wenn ich nachfolgendes Skript ausfuehre, wird zwar der Record
in der Datenbank geloescht, aber ich bekomme folgende Fehlermeldung:

"ADODB.Recordset error '800a0e78'

Die von der Anwendung angeforderte Operation ist für ein geschlossenes Objekt nicht erlaubt.

/Helpdesk/Password.asp, line 273 "

'Delete a special record
'----------------------------------------------------------------------------
If Trim(Request.form("selection") ) = "delete" then
set objconn = server.createobject("ADODB.Connection")
objConn.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\asp\helpdesk\HW_Req_Data.mdb"
Set objRS1 = Server.CreateObject("ADODB.Recordset")

strQ = "DELETE FROM Person WHERE Person.ID="
strQ = strQ & Request.form("number")
Set objRS1 = objConn.Execute(strQ)

strQ = "DELETE FROM Device WHERE Device.ID="
strQ = strQ & Request.form("number")
Set objRS1 = objConn.Execute(strQ)

Response.Write ("Record is deleted")

objRS1.Close    'Zeile 273
objConn.Close
Set objRS1 = nothing
Set objConn = nothing
end if

  1. hallo....nimm doch das close einwenig runter....siehe unten...
    wenns so auch nicht klappt probiers mal nach dem end if...

    Hallo miteinander,
    ich hab folgendes Problem:
    Wenn ich nachfolgendes Skript ausfuehre, wird zwar der Record
    in der Datenbank geloescht, aber ich bekomme folgende Fehlermeldung:

    "ADODB.Recordset error '800a0e78'

    Die von der Anwendung angeforderte Operation ist für ein geschlossenes Objekt nicht erlaubt.

    /Helpdesk/Password.asp, line 273 "

    'Delete a special record
    '----------------------------------------------------------------------------
    If Trim(Request.form("selection") ) = "delete" then
    set objconn = server.createobject("ADODB.Connection")
    objConn.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\asp\helpdesk\HW_Req_Data.mdb"
    Set objRS1 = Server.CreateObject("ADODB.Recordset")

    strQ = "DELETE FROM Person WHERE Person.ID="
    strQ = strQ & Request.form("number")
    Set objRS1 = objConn.Execute(strQ)

    strQ = "DELETE FROM Device WHERE Device.ID="
    strQ = strQ & Request.form("number")
    Set objRS1 = objConn.Execute(strQ)

    Response.Write ("Record is deleted")

    Set objRS1 = nothing
    Set objConn = nothing

    objRS1.Close    'Zeile 273
    objConn.Close
    end if

  2. Hallo,

    da du das Objekt objRS1 nicht mit "Open" geöffnet hast, kannst Du es
    auch nicht mit "Close" schließen. Außerdem kannst Du einfache DML-Statements
    direkt auf mit dem Connection-Objekt ausführen und benötigst kein
    Recordset-Objekt.

    objConn.Execute("DELETE FROM Tabelle WHERE Spalte = Bedingung")

    In deinem Fall wäre das dann folgendes Script:

    <%
    If Trim(Request.form("selection") ) = "delete" then
       set objconn = server.createobject("ADODB.Connection")
       objConn.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\asp\helpdesk\HW_Req_Data.mdb"

    strQ = "DELETE FROM Person WHERE Person.ID="
          strQ = strQ & Request.form("number")
          objConn.Execute(strQ)

    strQ = "DELETE FROM Device WHERE Device.ID="
          strQ = strQ & Request.form("number")
          objConn.Execute(strQ)

    Response.Write ("Record is deleted")

    objConn.Close
    Set objConn = nothing
    end if
    %>

    Tschau, Stefan