webForumDet fria alternativet
Logga in / Bli medlem

RecSet.Delete

ASP

19 svar · 216 visningar · startad av ReloadMaster

Medlem sedan aug. 2001239 inlägg
Trådstart#1

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.

Medlem sedan dec. 200012 464 inlägg
#2

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.

Medlem sedan juni 20019 024 inlägg
#3

Å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!

Medlem sedan aug. 2001239 inlägg
#4

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?

Medlem sedan juni 200032 967 inlägg
#5
strSQL = "UPDATE tblTable SET Field1 = 'value1', Field2 = 'value2' WHERE Field3 = 'value3'

mvh,

Medlem sedan dec. 200012 464 inlägg
#6

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.

Medlem sedan juni 20019 024 inlägg
#7

Kan du förklara lite närmare vad delte är för något LarsG? :e

Jag är visst petnoga idag... :) :) :)

Medlem sedan aug. 2001239 inlägg
#8

LarsG:

Hur ska jag ändra koden du skrev om jag vill ha den som en update för tabellen namn & nadress och tabellen: dr?

Medlem sedan dec. 200012 464 inlägg
#9

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
Medlem sedan aug. 2001239 inlägg
#10

Jag har tagit bort alla _ så får jag ett ett Syntaxfel i UPDATE uttryck vad kan det betyda?

Medlem sedan dec. 200012 464 inlägg
#11

_ 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
Medlem sedan aug. 2001239 inlägg
#12

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%>

Medlem sedan dec. 200012 464 inlägg
#13

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
Medlem sedan aug. 2001239 inlägg
#14

LarsG har du ICQ?
Skulle behöva hjälp med en stor ASPfil...
Mitt ICQ är: 108083233

Medlem sedan dec. 200012 464 inlägg
#15

Nej, jag har inte ICQ.

Medlem sedan aug. 2001239 inlägg
#16

Jag mailar dig koden då...

Medlem sedan dec. 200012 464 inlägg
#17

Det har jag väl inte bett om. Ett hundratal rader är väl inte så farligt att lägga upp.

Medlem sedan aug. 2001239 inlägg
#18

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...

Medlem sedan aug. 2001239 inlägg
#19

Upp......

Medlem sedan dec. 200012 464 inlägg
#20

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.

280 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
134 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
136 ms — ändringar (db)