Ditt recordset är readonly.
<% If Request.Querystring("tabort") Then
SQL = "delete FROM dr WHERE ID = " _
& Request.QueryString("Tabort")
Connect.Execute SQL,,128
End If%>
är min rekommendation.
19 svar · 216 visningar · startad av ReloadMaster
Tjena!
Jag undrar varför funkar inte detta:
<% If Request.Querystring("tabort") Then
SQL = "SELECT * FROM dr WHERE ID = " & Request.QueryString("Tabort") & " "
Set Recset = Connect.Execute(SQL)
RecSet.Delete
End If%>
Fär detta felet:
ADODB.Recordset fel '800a0cb3'
Åtgärden som programmet begärt stöds inte av leverantören.
Ditt recordset är readonly.
<% If Request.Querystring("tabort") Then
SQL = "delete FROM dr WHERE ID = " _
& Request.QueryString("Tabort")
Connect.Execute SQL,,128
End If%>
är min rekommendation.
Åtgärden som programmet begärt stöds inte av leverantören.
Microsoft har lagt ned mycket möda på att göra felmeddelandena så begripliga och korrekta som möjligt!
Tack, för hjälpen men nu har jag en ny fråga som är den att jag oxå använde:
RecSet.Update som inte funka går det att skriva om denna typ så att den funkar som en UPDATE?
Ja. Du behöver enbart använda recordset om du skall hämta data, aldrig när du modifierar data. Det är effektivare att använda update/delte/insert.
LarsG:
Hur ska jag ändra koden du skrev om jag vill ha den som en update för tabellen namn & nadress och tabellen: dr?
Jag antar att du skickar id i querystring och att du har två fält där man man matar in de nya värdena för namn och adress
'anslut till databas
sql = "update dr set namn = '" & _
request.form("namn") & "'," & _
"adress = '" & _
request.form("adress") & "'" & _
" where id = " & request.querystring("id")
conn.execute sql,,128
'stäng saker och ting
Jag har tagit bort alla _ så får jag ett ett Syntaxfel i UPDATE uttryck vad kan det betyda?
_ skall vara kvar. Det betyder att man fortsätter på nästa rad, annars så tolkas radslut som slut på statement.
Det är enklast att upptäcka syntaxfel om man lägger till en utskrift av sqlsatsen och inte gör någon execute.
Dvs
'anslut till databas
sql = "update dr set namn = '" & _
request.form("namn") & "'," & _
"adress = '" & _
request.form("adress") & "'" & _
" where id = " & request.querystring("id")
response.write "SQL: " & sql & "<br>"
'conn.execute sql,,128
'stäng saker och ting
Vad kan vara fel med detta?
<% If Request.Querystring("sparaandringarID") Then
SQL = "UPDATE konton SET knamn = '" & Request.Form("knamn") & "'," & _
"durl = '" & Request.Form("durl") & "'," & _
"dbanner = '" & Request.Form("dbanner") & "'," & _
"dalt = '" & Request.Form("dalt") & "'," & _
"aurl = '" & Request.Form("aurl") & "'," & _
"abanner = '" & Request.Form("abanner") & "'," & _
"aalt = '" & Request.Form("aalt") & "'," & _
" WHERE ID = " & Request.Form("ID")
Connect.Execute SQL,,128
End If%>
Det skall inte vara något komma före where.
<% If Request.Querystring("sparaandringarID") Then
SQL = "UPDATE konton SET knamn = '" & Request.Form("knamn") & "'," & _
"durl = '" & Request.Form("durl") & "'," & _
"dbanner = '" & Request.Form("dbanner") & "'," & _
"dalt = '" & Request.Form("dalt") & "'," & _
"aurl = '" & Request.Form("aurl") & "'," & _
"abanner = '" & Request.Form("abanner") & "'," & _
"aalt = '" & Request.Form("aalt") & "'" & _
" WHERE ID = " & Request.Form("ID")
Connect.Execute SQL,,128
LarsG har du ICQ?
Skulle behöva hjälp med en stor ASPfil...
Mitt ICQ är: 108083233
Nej, jag har inte ICQ.
Jag mailar dig koden då...
Det har jag väl inte bett om. Ett hundratal rader är väl inte så farligt att lägga upp.
Kej rå...
Här är den...
<%@ Language=VBScript%>
<!--#include file="adovbs.inc"-->
<% Response.Buffer = True%>
<html>
<head>
<title>Banneradmin - _ _ _ _ _ _.nu</title>
</head>
<body>
Meny:<p>
Visa Lista efter:<br>
<a href="banneradmin.asp?ordna=in">In</a><br>
<a href="banneradmin.asp?ordna=ut">Ut</a><br>
<a href="banneradmin.asp?byte=nytt">Lägg till Nytt Bannerbyte</a><br>
<hr>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("bannerdb.mdb")
%>
<%If Request.Querystring("ordna") = "in" Then%>
<table border="0" width="100%">
<tr>
<td width="52%">Namn</td>
<td width="13%">In</td>
<td width="13%">Ut</td>
<td width="11%"></td>
<td width="11%"></td>
</tr>
</table>
<%
SQL = "SELECT * FROM konton ORDER BY inklick DESC"
Set RecSet = Connect.Execute(SQL)
If RecSet.EOF Then
%>
Inga bannerbyten hittades...
<%
Else
Do Until RecSet.EOF
ID = RecSet("ID")
knamn = RecSet("knamn")
inklick = RecSet("inklick")
utklick = RecSet("utklick")
%>
<table border="0" width="100%">
<tr>
<td width="52%"><%=knamn%></td>
<td width="13%"><%=inklick%></td>
<td width="13%"><%=utklick%></td>
<td width="11%"><a href="banneradmin.asp?andraID=<% =ID%>">Ändra</a></td>
<td width="11%">Ta bort</td>
</tr>
</table>
<%
RecSet.MoveNext
Loop
End If
%>
<%End If%>
<%If Request.Querystring("ordna") = "ut" Then%>
<table border="0" width="100%">
<tr>
<td width="52%">Namn</td>
<td width="13%">In</td>
<td width="13%">Ut</td>
<td width="11%"></td>
<td width="11%"></td>
</tr>
</table>
<%
SQL = "SELECT * FROM konton ORDER BY utklick DESC"
Set RecSet = Connect.Execute(SQL)
If RecSet.EOF Then
%>
Inga bannerbyten hittades...
<%
Else
Do Until RecSet.EOF
ID = RecSet("ID")
knamn = RecSet("knamn")
inklick = RecSet("inklick")
utklick = RecSet("utklick")
%>
<table border="0" width="100%">
<tr>
<td width="52%"><%=knamn%></td>
<td width="13%"><%=inklick%></td>
<td width="13%"><%=utklick%></td>
<td width="11%"><a href="banneradmin.asp?andraID=<% =ID%>">Ändra</a></td>
<td width="11%">Ta bort</td>
</tr>
</table>
<%
RecSet.MoveNext
Loop
End If
%>
<%End If%>
<%If Request.Querystring("byte") = "nytt" Then%>
<hr>
<form method="POST" action="banneradmin.asp?byte?spara">
<table border="0" width="90%">
<tr>
<td width="50%"><b>Information:</b></td>
<td width="50%"></td>
</tr><tr>
<td width="50%">
<p align="right">Kontonamn</p>
</td>
<td width="50%"><input type="text" name="knamn" size="20"></td>
</tr><tr>
<td width="50%"></td>
<td width="50%"></td>
</tr><tr>
<td width="50%"><b>Din sidas Detaljer</b></td>
<td width="50%"></td>
</tr><tr>
<td width="50%" align="right">Sid URL:</td>
<td width="50%"><input type="text" name="durl" size="20" value="http://"></td>
</tr><tr>
<td width="50%" align="right">Banner URL</td>
<td width="50%"><input type="text" name="dbanner" size="20" value="http://"></td>
</tr><tr>
<td width="50%" align="right">Banner ALT</td>
<td width="50%"><input type="text" name="dalt" size="20"></td>
</tr><tr>
<td width="50%"></td>
<td width="50%"></td>
</tr><tr>
<td width="50%"><b>Detaljer för Sidan du byter med</b></td>
<td width="50%"></td>
</tr><tr>
<td width="50%" align="right">Sid URL:</td>
<td width="50%"><input type="text" name="aurl" size="20" value="http://"></td>
</tr><tr>
<td width="50%" align="right">Banner URL</td>
<td width="50%"><input type="text" name="abanner" size="20" value="http://"></td>
</tr><tr>
<td width="50%" align="right">Banner ALT</td>
<td width="50%"><input type="text" name="aalt" size="20"></td>
</tr><tr>
<td width="50%"></td>
<td width="50%"></td>
</tr></table>
<table border="0" width="100%">
<tr><td width="50%">
<p align="right"><input type="submit" value="Skicka" name="skicka">
</p>
</td>
<td width="50%"><input type="reset" value="Återställ" name="tom"></td>
</tr></table>
</form>
<%End If%>
<%If Request.Querystring("byte") = "spara" Then%>
<%
durl = Request.Form("durl")
dbanner = Request.Form("dbanner")
dalt = Request.Form("dalt")
aurl = Request.Form("aurl")
abanner = Request.Form("abanner")
aalt = Request.Form("aalt")
SQL = "INSERT INTO konton (durl,dbanner,dalt,aurl,abanner,aalt)VALUES ('" & durl & "','" & dbanner & "','" & dalt & "','" & aurl & "','" & abanner & "','" & aalt & "')"
Set RecSet = Connect.Execute(SQL)
Response.Redirect "banneradmin.asp?byte=sparad"
%>
<%End If%>
<%If Request.Querystring("byte") = "spara" Then%>
Bannerbyte Sparat!
<a href="banneradmin.asp?kodID=<%=ID%>">Klicka här för att generera kod</a>
<%End If%>
<%If Request.Querystring("andraID") Then%>
Kommer snart!
<%
SQL = "SELECT * FROM konton WHERE ID = " & Request.QueryString("andraID") & " "
Set Recset = Connect.Execute(SQL)
ID = RecSet("ID")
knamn = RecSet("knamn")
durl = RecSet("durl")
dbanner = RecSet("dbanner")
dalt = RecSet("dalt")
aurl = RecSet("aurl")
abanner = RecSet("abanner")
aalt = RecSet("aalt")
%>
<hr>
<form method="POST" action="banneradmin.asp?sparaandringarID=<% =ID%>">
<table border="0" width="90%">
<tr>
<td width="50%"><b>Information:</b></td>
<td width="50%"></td>
</tr><tr>
<td width="50%">
<p align="right">Kontonamn</p>
</td>
<td width="50%"><input type="text" name="knamn" size="20" value="<% =knamn%>"></td>
</tr><tr>
<td width="50%" align="right"></td>
<td width="50%"><input type="hidden" name="ID" size="20" value="<% =ID%>"></td>
</tr><tr>
<td width="50%"></td>
<td width="50%"></td>
</tr><tr>
<td width="50%"><b>Din sidas Detaljer</b></td>
<td width="50%"></td>
</tr><tr>
<td width="50%" align="right">Sid URL:</td>
<td width="50%"><input type="text" name="durl" size="20" value="<% =durl%>"></td>
</tr><tr>
<td width="50%" align="right">Banner URL</td>
<td width="50%"><input type="text" name="dbanner" size="20" value="<% =dbanner%>"></td>
</tr><tr>
<td width="50%" align="right">Banner ALT</td>
<td width="50%"><input type="text" name="dalt" size="20" value="<% =dalt%>"></td>
</tr><tr>
<td width="50%"></td>
<td width="50%"></td>
</tr><tr>
<td width="50%"><b>Detaljer för Sidan du byter med</b></td>
<td width="50%"></td>
</tr><tr>
<td width="50%" align="right">Sid URL:</td>
<td width="50%"><input type="text" name="aurl" size="20" value="<% =aurl%>"></td>
</tr><tr>
<td width="50%" align="right">Banner URL</td>
<td width="50%"><input type="text" name="abanner" size="20" value="<% =abanner%>"></td>
</tr><tr>
<td width="50%" align="right">Banner ALT</td>
<td width="50%"><input type="text" name="aalt" size="20" value="<% =aalt%>"></td>
</tr><tr>
<td width="50%"></td>
<td width="50%"></td>
</tr></table>
<table border="0" width="100%">
<tr><td width="50%">
<p align="right"><input type="submit" value="Skicka" name="skicka">
</p>
</td>
<td width="50%"><input type="reset" value="Återställ" name="tom"></td>
</tr></table>
</form>
<%End If%>
<% If Request.Querystring("sparaandringarID") Then
SQL = "UPDATE konton SET knamn = '" & Request.Form("knamn") & "'," & _
"durl = '" & Request.Form("durl") & "'," & _
"dbanner = '" & Request.Form("dbanner") & "'," & _
"dalt = '" & Request.Form("dalt") & "'," & _
"aurl = '" & Request.Form("aurl") & "'," & _
"abanner = '" & Request.Form("abanner") & "'," & _
"aalt = '" & Request.Form("aalt") & "'" & _
" WHERE ID = " & Request.Form("ID")
Connect.Execute SQL,,128
'Response.write "SQL: " & sql & "<br>"
End If%>
<%
RecSet.Close
Set RecSet = Nothing
Connect.Close
Set Connect = Nothing
%>
</body>
</html>
Ok felet är:
Objekt krävs.: 'RecSet'
Hoppas du klarar det...
Upp......
I två av dina if-grenar så skapas inget öppet recordset.
I dessa
<%If Request.Querystring("byte") = "spara" Then%>
<%
och
<% If Request.Querystring("sparaandringarID") Then
I den du gör insert så returneras ett tomt recordset från execute. Det är bättre att skriva
connect.execute sql,,128
som du gör i din sista if
I den sista så skapas inget recordset överhuvudtaget.
Jag tycker att du bör flytta in
recset.close
enbart inom de grenar där du skapar ett recordset.