I Ivar Medlem sedan aug. 2002 218 inlägg Trådstart 12 aug. 2002 19:44 #1 Hej!
Jag har problem med den här koden
Kod:
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "DELETE FROM items WHERE ID = Posted > '" & Date & "'"
RecSet.Open SQL, Connect, 1,2
Jag vill att automatiskt radera poster som är äldre en 30 dagar.
Snälla hjälp jag är nybörjare i ASP
Med vänlig hälsning
Ivar
O OveRRidE Medlem sedan feb. 2001 12 078 inlägg Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "DELETE FROM items WHERE dateCreated > #" & dateAdd("d",-30,Date) & "#"
RecSet.Open SQL, Connect, 1,2
1. Jag har förutsatt att kolumnen är i formatet "datum" av något slag.
2. Jag har lagt till ett kolumnnamn som krävs för att ta reda på när posten skapades; 'dateCreated', där du lagrar dagens datum (med now()) när du skapar raden i databasen.
Redigerat) Felkodat. Har rättat till Ekström:s nedanstående notering.
I Ivar Medlem sedan aug. 2002 218 inlägg Hej!
Punkt 1 är svar ja
Punkt 2 ska prova om jag fattat rätt
Tack för hjälpen.
MVH Ivar
Ekström Medlem sedan feb. 2002 2 594 inlägg OveRRidE: Borde inte dateAdd-funktionen se ut som följer:
dateAdd("d",-30,date())
Alltså att den drar bort 30 dagar istället för att lägga på?
Är lite trött just nu... Kan ju bero på det också
O OveRRidE Medlem sedan feb. 2001 12 078 inlägg Ekström, det är korrekt, det är jag som är trött.
Korrekt kod:
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "DELETE FROM items WHERE dateCreated > #" & dateAdd("d",-30,Date) & "#"
RecSet.Open SQL, Connect, 1,2
Ekström Medlem sedan feb. 2002 2 594 inlägg
OveRRidE skrev:
Ekström, det är korrekt, det är jag som är trött.
Nej, det är jag som är trött. Och har tur
I Ivar Medlem sedan aug. 2002 218 inlägg Hej!
Jag har den här koden nu men det funkar inte
Tacksam för all hjälp:
\<%
Dim connect, query, senaste, test, delete
set connect = server.createobject("ADODB.connection")
Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db/annonser.mdb") & ";pwd=;"
Set senaste = Server.CreateObject("ADODB.Recordset")
query = "SELECT * FROM items Where test='on' ORDER BY posted DESC"
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "DELETE FROM items WHERE dateCreated > #" & dateAdd("d",-30,Date) & "#"
senaste.Open query, Connect
Do Until senaste.EOF
%>
@nders Medlem sedan juni 2000 32 967 inlägg På vilket sätt funkar det inte?
Felmeddelande?
Och det är väl inte all kod det där?
Är det tänkt att den skall radera poster och inget mer? Eller exakt vad är det tänkt att koden skall göra?
I Ivar Medlem sedan aug. 2002 218 inlägg Ingen Felmeddelande men posterna är kvar
DVS Äldre poster en 30 dagar ska bort.
@nders Medlem sedan juni 2000 32 967 inlägg Om den bara ska radera poster så borde det nog se ut något sånt härnt:
<%
Dim connect, SQL
set connect = server.createobject("ADODB.connection")
Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db/annonser.mdb") & ";pwd=;"
SQL = "DELETE FROM items WHERE dateCreated < #" & dateAdd("d",-30,Date) & "#"
Connect.Execute SQL, , 128
%>
Märk att jag har vänt på haken i SQL-frågan. Det ska vara mindre än, inte större än.
Mvh,
I Ivar Medlem sedan aug. 2002 218 inlägg Tack Timmy jag testar.
MVH Ivar
@nders Medlem sedan juni 2000 32 967 inlägg Ska nog ändra min signatur, för att undvika missförstånd. Jag heter Anders.
[r]: Sådärja, en favorit i repris.
I Ivar Medlem sedan aug. 2002 218 inlägg Här är all kod i default.asp vad är felet?
<%
Dim connect, query, senaste, test, Sql
set connect = server.createobject("ADODB.connection")
Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db/annonser.mdb") & ";pwd=;"
Set senaste = Server.CreateObject("ADODB.Recordset")
query = "SELECT * FROM items Where test='on' ORDER BY posted DESC"
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "DELETE FROM items WHERE dateCreated < #" & dateAdd("d",-30,Date) & "#"
senaste.Open query, Connect
Connect.Execute SQL, , 128
Do Until senaste.EOF
%>
\<tr\>
\<td\> \<a href="detail.asp?item=\<%=senaste("id")%\>"\>\<%=senaste("item")%\>\</a\> \</td\>
\<td\> Categori:
\<% if senaste("category")="categori1" then %\>
\<%=categori1%\>
\<% elseif senaste("category")="categori2" then %\>
\<%=categori2%\>
\<% elseif senaste("category")="categori3" then %\>
\<%=categori3%\>
\<% elseif senaste("category")="categori4" then %\>
\<%=categori4%\>
\<% elseif senaste("category")="categori5" then %\>
\<%=categori5%\>
\<% end if %\>
\</td\>
\<td\> Pris: \<%=senaste("price")%\> Kr \</td\>
\</tr\>
\<%
senaste.MoveNext
Loop
senaste.Close
Set senaste = Nothing
%>
Händer ingenting alltså poster som är äldre en dagens datum Now() dvs äldre en 30 dagar skall bort.
Mvh Ivar
O OveRRidE Medlem sedan feb. 2001 12 078 inlägg Har du skapat kolumnen 'dateCreated' i din databas och fyllt dessa rader med datum då raden skapades?
Se även till så att det verkligen finns poster i databasen som kommer tas bort, så att det inte är det som beror.
Ekström Medlem sedan feb. 2002 2 594 inlägg
Ivar skrev:
Tack Timmy jag testar.
MVH Ivar
Hehe, Timmy!
Vad var det egentligen, @nders? Timmy är väl hunden i "Fem" om jag inte minns fel.
@nders Medlem sedan juni 2000 32 967 inlägg Riktigt OT: Timmy är även en rullstolsbunden figur i South Park, vars ordförråd består av hans eget namn. Han svarar alltid på tilltal, genom att skrika sitt eget namn, Timmy! . Läskigt skön karaktär.
Ekström Medlem sedan feb. 2002 2 594 inlägg Hehe. Jag måste ja missat honom helt. Har ändå sett en hel drös med SP-avsnitt.
Måste dock säga att Simpsons och Futurama knäcker SP lätt.
crisse6 Medlem sedan dec. 2000 2 526 inlägg håller med om att Simpsons är grymt
Ekström Medlem sedan feb. 2002 2 594 inlägg Självklart, o allsmäktige ledare...
Nu är jag också OnT