DELETE in ASP-Skript
Armin
- datenbank
0 doma0 Stefan Falz
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
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
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