webForumDet fria alternativet

vägrar ta bort rs..

ASP

17 svar · 355 visningar · startad av Thompa__85

Medlem sedan aug. 2002600 inlägg
Frågan#1

Hejsan!
har en kod som ska ta bort ett inlägg:

if request.querystring("action")="tabort" then
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM klotter where id = "&request.querystring("ID")
rs.Open Addera, Connect, 3, 3 
rs.delete
rs.update

response.redirect "klotter.asp"
end if

Men den skickar bara tillbaka till klotter.asp utan att ta bort det...

Why?

Medlem sedan jan. 20032 285 inlägg
#2

Det kanske går bättre om du tar bort det med SQL direkt?

if request.querystring("action")="tabort" then
  strSQL = "DELETE FROM klotter where id = "&request.querystring("ID")
  Connect.Execute(strSQL)
  response.redirect "klotter.asp"
end if
Medlem sedan aug. 2002600 inlägg
#3

Nopes, inlägget finns fortfarande kvar :s men inga felmeddelanden ges...

Medlem sedan jan. 20032 285 inlägg
#4

Är du säker på att det finns något värde i querystringen då?

if request.querystring("action")="tabort" then
  If IsNumeric(Request.QueryString("ID")) Then
    strSQL = "DELETE FROM klotter where id = "&request.querystring("ID")
    Connect.Execute(strSQL)
    response.redirect "klotter.asp"
  Else
    Response.Write("Ajdå...")
  End If
end if
Medlem sedan aug. 2002600 inlägg
#5

Sebbe skrev:

Är du säker på att det finns något värde i querystringen då?

if request.querystring("action")="tabort" then
  If IsNumeric(Request.QueryString("ID")) Then
    strSQL = "DELETE FROM klotter where id = "&request.querystring("ID")
    Connect.Execute(strSQL)
    response.redirect "klotter.asp"
  Else
    Response.Write("Ajdå...")
  End If
end if

Hur tar jag reda på om de finns nått värde?
Testade din kod, men man skickades tillbaka till klotter.asp, utan att den tog bort eller skrev Ajdå...

Medlem sedan jan. 20032 285 inlägg
#6

Du råkar inte ha med On Error Resume Next någonstans i koden, eftersom felmeddelanden då inte visas?

Medlem sedan aug. 2002600 inlägg
#7

Nopes har inget sånt...

Medlem sedan jan. 20032 285 inlägg
#8

OK, nu kör vi en hårdkoll här! ;)

if request.querystring("action")="tabort" then
  If IsNumeric(Request.QueryString("ID")) Then
    strSQL = "SELECT id FROM klotter WHERE id = " & Request.QueryString("ID")
    Set objRS = Connect.Execute(strSQL)

    If objRS.EOF Then
      Response.Write("Ajdå...")
      Set objRS = Nothing
    Else
      Set objRS = Nothing
      strSQL = "DELETE FROM klotter where id = "&request.querystring("ID")
      Connect.Execute(strSQL)
      response.redirect "klotter.asp"
    End If
  Else
    Response.Write("Ajdå...")
  End If
end if
Medlem sedan aug. 2002600 inlägg
#9

Sebbe skrev:

OK, nu kör vi en hårdkoll här! ;)

if request.querystring("action")="tabort" then
  If IsNumeric(Request.QueryString("ID")) Then
    strSQL = "SELECT id FROM klotter WHERE id = " & Request.QueryString("ID")
    Set objRS = Connect.Execute(strSQL)

    If objRS.EOF Then
      Response.Write("Ajdå...")
      Set objRS = Nothing
    Else
      Set objRS = Nothing
      strSQL = "DELETE FROM klotter where id = "&request.querystring("ID")
      Connect.Execute(strSQL)
      response.redirect "klotter.asp"
    End If
  Else
    Response.Write("Ajdå...")
  End If
end if

Tro de eller ej, men exakt samma resultat som tidigare :s

Medlem sedan jan. 20032 285 inlägg
#10

Det låster nästan som om du har någon annan Response.Redirect() någonstans som skickar vidare besökaren dit, för att om det inte tas bort när man har gjort så där är en praktisk omöjlighet! :)

Medlem sedan aug. 2002600 inlägg
#11

Skickar med hela kodsnutten:

<%
nextPage = TRIM( Request("nextPage"))
IF nextPage = "" THEN nextPage = 1

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("databas/klotter.mdb")
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM klotter order by id desc"
rs.Open Addera, Connect, 3, 3 

Count = rs.recordcount

if request.querystring("action")="spara" then
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT  * FROM klotter "
rs.Open Addera, Connect, 3, 3 
rs.addnew
rs("text")=request.form("inlagg")
rs("namn") = session("user")
rs("namnid")=session("id")
rs("datum") =now
rs.update

if request.querystring("action")="tabort" then
  If IsNumeric(Request.QueryString("ID")) Then
    strSQL = "SELECT id FROM klotter WHERE id = " & Request.QueryString("ID")
    Set objRS = Connect.Execute(strSQL)

    If objRS.EOF Then
      Response.Write("Ajdå...")
      Set objRS = Nothing
    Else
      Set objRS = Nothing
      strSQL = "DELETE FROM klotter where id = "&request.querystring("ID")
      Connect.Execute(strSQL)
      response.redirect "klotter.asp"
    End If
  Else
    Response.Write("Ajdå...")
  End If
end if

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("databas/databas.mdb")
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM anv where id='"&session("id")&"'"
rs.Open Addera, Connect, 3, 3 
rs("status") = rs("status") + poangklotter
rs.update

response.redirect "klotter.asp"
end if
rs.PageSize = 10
if not rs.EOF then
rs.AbsolutePage = nextPage

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("databas/klotter.mdb")

query = "select count(*) as antal, namn from klotter group by namn order by 1 desc"
set rs3 = connect.execute(query)

%>
<% END IF %>

När jag ändå skickat den, e det nått i koden du ser man skulle kunna förbättra?

Tack för all hjälp hittills!

Medlem sedan jan. 20032 285 inlägg
#12

Inte helt säker på vad allt gör i din kod, men något sånt här kanske? :)

<%
nextPage = TRIM( Request("nextPage"))
IF nextPage = "" THEN nextPage = 1

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath ("databas/klotter.mdb")

if request.querystring("action")="spara" then
  strSQL = "INSERT INTO klotter (text, namn, namnid, datum) VALUES ('" & Request.Form("inlagg") & "', '" & Session("user") & "', '" & Session("id") & "', #" & Now() & "#")"
  Connect.Execute(strSQL)
ElseIf request.querystring("action")="tabort" then
  If IsNumeric(Request.QueryString("ID")) Then
    strSQL = "DELETE FROM klotter where id = "&request.querystring("ID")
    Connect.Execute(strSQL)
    response.redirect "klotter.asp"
  Else
    Response.Write("Ajdå...")
  End If
end if

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath ("databas/databas.mdb")
strSQL = "UPDATE anv SET status = status + " & poangklotter & " WHERE id = '" & Session("id") & "'"
objConn.Execute(strSQL)
objConn.Close : Set objConn = Nothing

strSQL = "SELECT * FROM klotter"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strSQL, Connect, 1, 3
rs.PageSize = 10

if not rs.EOF then
  rs.AbsolutePage = nextPage
  query = "select count(*) as antal, namn from klotter group by namn order by 1 desc"
  set rs3 = connect.execute(query)
End If

rs.Close : Set rs = Nothing
Connect.Close : Set Connect = Nothing
%>
Medlem sedan aug. 2002600 inlägg
#13

Nu funkar de kanon att ta bort inlägg!
Men, den klagar på en sak:

Microsoft VBScript compilation error '800a0401' 

Expected end of statement 

/adde/star/2/klotter.asp, line 28 

strSQL = "INSERT INTO klotter (text, namn, namnid, datum) VALUES ('" & Request.Form("inlagg") & "', '" & Session("user") & "', '" & Session("id") & "', #" & Now() & "#")"
------------------------------------------------------------------------------------------------------------------------------------------------------------------------^

varför då?

Medlem sedan jan. 20032 285 inlägg
#14

Ojdå, byt bara ut den raden till

strSQL = "INSERT INTO klotter (text, namn, namnid, datum) VALUES ('" & Request.Form("inlagg") & "', '" & Session("user") & "', '" & Session("id") & "', #" & Now() & "#)"

:r

Medlem sedan aug. 2002600 inlägg
#15

Nu säger den bara

Microsoft JET Database Engine error '80040e14' 

Syntax error in INSERT INTO statement. 

/adde/star/2/klotter.asp, line 29

när jag ska spara ett inlägg.. rad 29 är strSQL satsen..

Medlem sedan jan. 20032 285 inlägg
#16

Text är ett reserverat ord. Antingen byter du namnet på fältet, eller så ändrar du raden till det här:

strSQL = "INSERT INTO klotter ([text], namn, namnid, datum) VALUES ('" & Request.Form("inlagg") & "', '" & Session("user") & "', '" & Session("id") & "', #" & Now() & "#)"
Medlem sedan aug. 2002600 inlägg
#17

Tack för all hjälp!! TACk!!

Medlem sedan nov. 200355 inlägg
#18

<html>

<!-- #include file="adovbs.inc" -->

<b>Radera ur adressboken!</b>
<hr noshade size="1">

<% Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("db/df.mdb")

Set RecSet = Server.CreateObject("ADODB.Recordset")

Radera = "SELECT * FROM members ORDER BY username"
RecSet.Open Radera, Conn, 3, 3 %>

Följande adresser finns att radera ur adresseboken.\<p\>

\<ul\>

<% Do Until RecSet.EOF %>

\<li\>\<% =RecSet("namn") %\>&nbsp;\<b\>\<% =RecSet("username") %\>\</b\>\<br\>
   \<% =RecSet("efternamn") %\>\<br\>
	 \<a href="tabort.asp?delID=\<% =RecSet("ID") %\>"\>Radera denna adress\</a\>
	 \<hr noshade size="1" width="250" align="left"\>

<% RecSet.MoveNext
Loop
RecSet.Close %>

</body>
</html>

253 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)