Avatar billede karstenl Nybegynder
23. juli 2005 - 02:32 Der er 12 kommentarer og
1 løsning

Slette i DB.

Skal kunne slette en post i en DB. Det jeg har/roder med nu, ser sådan her ud, det er self. kun en bid af det ;) - men virker ikke.
Ved heller ikke om det overhoved er den korrekte måde at lave det på, eller om der er en bedre måde.. :)

Nogen der gider hjælpe? :)
-------------
<a href="news_overview.asp?mode=delete_news=<%=rs("ID")%>">Delete</a></font>
 
 
 
<% if mode = "delete_news" then
Set rs = Conn.Execute("select * from news where ID = " & Request.QueryString("ID"))

Response.Redirect("news_overview.asp")
end if %>
-------------
Avatar billede softspot Forsker
23. juli 2005 - 02:38 #1
Jeg ville umiddelbart kalde delete-kommandoen i databasen, hvis det er sletning jeg er ude efter... :)

Noget i stil med dette:

SQL = "DELETE FROM news WHERE ID = " & Request.QueryString("ID")
Conn.Execute SQL
Avatar billede ksoren Nybegynder
23. juli 2005 - 02:44 #2
+ en korrekt url

<a href="news_overview.asp?mode=delete_news&id=<%=rs("ID")%>">Delete</a>
Avatar billede karstenl Nybegynder
23. juli 2005 - 03:00 #3
Jeg smider lige hele skidtet ind.. for fatter ikke ret meget lige nu, måske jeg bare skulle gå i seng :-P  .. hehe

--------------
<body>

<%
Function FormatStr(String)
on Error resume next
String = Replace(String, CHR(10), "<br>")
FormatStr = String
End Function

Set cn = Server.CreateObject("ADODB.Connection")
OpenString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & server.mappath("../db/ubc_news.mdb")
cn.Open OpenString


Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open "SELECT TOP 6 * FROM news ORDER BY dato Desc", cn

do while not rs.eof
%>
 

<table border="0" cellpadding="3" cellspacing="0" width="60%">
<tr>
  <td valign="top" width="1%">*</td>
  <td valign="top">
 
  <font size="1"><% = rs("dato") %></font>
 
  <br>
   
  <font size="2"><b><% = rs("headline") %></b><br><% = FormatStr(rs("message"))%></font>
 
  <br><br>
 
  <font size="1">Written by: <b><% = rs("author") %></b></font>
 
 
  <br><br>
  <font size="1"><a href="news_overview.asp?mode=delete_news=<%=rs("ID")%>">Delete</a></font>

 
 
<% if mode = "delete_news" then
Set rs = Conn.Execute("select * from news where ID = " & Request.QueryString("ID"))

Response.Redirect("news_overview.asp")
end if %>



  </td>
</tr>
</table>
<br><hr><br>



<%
    rs.MoveNext
    loop
rs.close
cn.close

%>

</body>
</html>



--------------
Avatar billede softspot Forsker
23. juli 2005 - 03:07 #4
Der er lige nogle umiddelbare rettelser ifm. parametre og sletning... Noget i stil med dette:


<body>

<%
Function FormatStr(String)
on Error resume next
String = Replace(String, CHR(10), "<br>")
FormatStr = String
End Function

Set cn = Server.CreateObject("ADODB.Connection")
OpenString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & server.mappath("../db/ubc_news.mdb")
cn.Open OpenString


Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open "SELECT TOP 6 * FROM news ORDER BY dato Desc", cn

do while not rs.eof
%>
 

<table border="0" cellpadding="3" cellspacing="0" width="60%">
<tr>
  <td valign="top" width="1%">*</td>
  <td valign="top">
 
  <font size="1"><% = rs("dato") %></font>
 
  <br>
   
  <font size="2"><b><% = rs("headline") %></b><br><% = FormatStr(rs("message"))%></font>
 
  <br><br>
 
  <font size="1">Written by: <b><% = rs("author") %></b></font>
 
 
  <br><br>
  <font size="1"><a href="news_overview.asp?mode=delete_news&id=<%=rs("ID")%>">Delete</a></font>

 
 
<% if mode = "delete_news" then
Set rs = Conn.Execute("DELETE FROM news WHERE ID = " & Request.QueryString("ID"))

Response.Redirect("news_overview.asp")
end if %>



  </td>
</tr>
</table>
<br><hr><br>



<%
    rs.MoveNext
    loop
rs.close
cn.close

%>

</body>
</html>
Avatar billede softspot Forsker
23. juli 2005 - 03:10 #5
Jeg kunne måske endda foreslå at du flyttede sletningen op foran udvælgelsen, da du så kunne spare et redirect... :)

Altså:

<body>

<%
Function FormatStr(String)
on Error resume next
String = Replace(String, CHR(10), "<br>")
FormatStr = String
End Function

Set cn = Server.CreateObject("ADODB.Connection")
OpenString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & server.mappath("../db/ubc_news.mdb")
cn.Open OpenString

 
 
<%
if mode = "delete_news" then
  Conn.Execute("DELETE FROM news WHERE ID = " & Request.QueryString("ID"))
end if
%>

Set rs = Conn.Execute("SELECT TOP 6 * FROM news ORDER BY dato Desc")

do while not rs.eof
%>
 

<table border="0" cellpadding="3" cellspacing="0" width="60%">
<tr>
  <td valign="top" width="1%">*</td>
  <td valign="top">
 
  <font size="1"><% = rs("dato") %></font>
 
  <br>
   
  <font size="2"><b><% = rs("headline") %></b><br><% = FormatStr(rs("message"))%></font>
 
  <br><br>
 
  <font size="1">Written by: <b><% = rs("author") %></b></font>
 
 
  <br><br>
  <font size="1"><a href="news_overview.asp?mode=delete_news&id=<%=rs("ID")%>">Delete</a></font>

  </td>
</tr>
</table>
<br><hr><br>



<%
    rs.MoveNext
    loop
rs.close
cn.close

%>

</body>
</html>
Avatar billede softspot Forsker
23. juli 2005 - 03:14 #6
Møj! Kan du ikke lige selv fjern <% og %> omkring koden der sletter...
Avatar billede karstenl Nybegynder
23. juli 2005 - 03:15 #7
Hejsa softspot

Har lige prøvet det (dit sidste) men den sletter intet :-/
Avatar billede karstenl Nybegynder
23. juli 2005 - 03:19 #8
denne?
<a href="news_overview.asp?mode=delete_news&id=<%=rs("ID")%>">Delete</a>
så det er..
<a href="news_overview.asp?mode=delete_news&id==rs("ID")">Delete</a></a> ?
Avatar billede softspot Forsker
23. juli 2005 - 03:23 #9
Nej, jeg har rettet det i denne udgave (hvor mode nu også bliver hentet ud af querystring :))...

<body>

<%
Function FormatStr(String)
  on Error resume next
  String = Replace(String, CHR(10), "<br>")
  FormatStr = String
End Function

Set cn = Server.CreateObject("ADODB.Connection")
OpenString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & server.mappath("../db/ubc_news.mdb")
cn.Open OpenString


if Request.QueryString("mode") = "delete_news" then
  Conn.Execute("DELETE FROM news WHERE ID = " & Request.QueryString("ID"))
end if


Set rs = Conn.Execute("SELECT TOP 6 * FROM news ORDER BY dato Desc")

do while not rs.eof
%>
 

<table border="0" cellpadding="3" cellspacing="0" width="60%">
<tr>
  <td valign="top" width="1%">*</td>
  <td valign="top">
 
  <font size="1"><% = rs("dato") %></font>
 
  <br>
   
  <font size="2"><b><% = rs("headline") %></b><br><% = FormatStr(rs("message"))%></font>
 
  <br><br>
 
  <font size="1">Written by: <b><% = rs("author") %></b></font>
 
 
  <br><br>
  <font size="1"><a href="news_overview.asp?mode=delete_news&id=<%=rs("ID")%>">Delete</a></font>

  </td>
</tr>
</table>
<br><hr><br>



<%
    rs.MoveNext
loop
rs.close
cn.close

%>

</body>
</html>
Avatar billede karstenl Nybegynder
23. juli 2005 - 03:32 #10
ups..

Nu får jeg denne
----------
Microsoft VBScript runtime error '800a01a8'

Object required: ''

/ubc_news/news_overview.asp, line 31

----------

30) if Request.QueryString("mode") = "delete_news" then
31) Conn.Execute("DELETE FROM news WHERE ID = " & Request.QueryString("ID"))
32) end if
Avatar billede softspot Forsker
23. juli 2005 - 04:18 #11
Fordømt! Jeg var ikke lige opmærksom på at du havde brugt to forskellige objekter til at referere din connection (hvilket ikke var korrekt i dette tilfælde). Mon så det her så fungerer...

<body>

<%
Function FormatStr(String)
  on Error resume next
  String = Replace(String, CHR(10), "<br>")
  FormatStr = String
End Function

Set cn = Server.CreateObject("ADODB.Connection")
OpenString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & server.mappath("../db/ubc_news.mdb")
cn.Open OpenString


if Request.QueryString("mode") = "delete_news" then
  cn.Execute "DELETE FROM news WHERE ID = " & Request.QueryString("ID")
end if


Set rs = cn.Execute("SELECT TOP 6 * FROM news ORDER BY dato Desc")

do while not rs.eof
%>
 

<table border="0" cellpadding="3" cellspacing="0" width="60%">
<tr>
  <td valign="top" width="1%">*</td>
  <td valign="top">
 
  <font size="1"><% = rs("dato") %></font>
 
  <br>
   
  <font size="2"><b><% = rs("headline") %></b><br><% = FormatStr(rs("message"))%></font>
 
  <br><br>
 
  <font size="1">Written by: <b><% = rs("author") %></b></font>
 
 
  <br><br>
  <font size="1"><a href="news_overview.asp?mode=delete_news&id=<%=rs("ID")%>">Delete</a></font>

  </td>
</tr>
</table>
<br><hr><br>



<%
    rs.MoveNext
loop
rs.close
cn.close

%>

</body>
</html>
Avatar billede karstenl Nybegynder
23. juli 2005 - 04:30 #12
Hejsa softspot
Jamen jeg har ikke helt styr på ASP., hvilke du sikkert måske har bemærket.. lol :P ... Det er altsammen noget jeg har fundet rundt omkring på nettet og sat sammen, og prøver ihærdigt at lære af andre :)

Det virker nu.. tuinde tak skal du have, pænt af dig at gide hjælpe på dette ukristelige tidspunkt og så med vedligeholdelse midt i det hele ;)

Post venligst et svar :)
Avatar billede softspot Forsker
23. juli 2005 - 04:35 #13
Velbekomme! :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester