IvarMedlem sedan aug. 2002218 inlägg 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
OveRRidEMedlem sedan feb. 200112 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. :r
IvarMedlem sedan aug. 2002218 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ömMedlem sedan feb. 20022 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å :e
OveRRidEMedlem sedan feb. 200112 078 inlägg Ekström, det är korrekt, det är jag som är trött. :r
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ömMedlem sedan feb. 20022 594 inlägg
OveRRidE skrev:
Ekström, det är korrekt, det är jag som är trött. :r
Nej, det är jag som är trött. Och har tur :e
IvarMedlem sedan aug. 2002218 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
%>
@ndersMedlem sedan juni 200032 969 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?
IvarMedlem sedan aug. 2002218 inlägg Ingen Felmeddelande men posterna är kvar
DVS Äldre poster en 30 dagar ska bort.
@ndersMedlem sedan juni 200032 969 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,
IvarMedlem sedan aug. 2002218 inlägg Tack Timmy jag testar.
MVH Ivar
@ndersMedlem sedan juni 200032 969 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. ;)
IvarMedlem sedan aug. 2002218 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
OveRRidEMedlem sedan feb. 200112 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ömMedlem sedan feb. 20022 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. :D
@ndersMedlem sedan juni 200032 969 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. :D
EkströmMedlem sedan feb. 20022 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. :e
crisse6Medlem sedan dec. 20002 526 inlägg håller med om att Simpsons är grymt :)
EkströmMedlem sedan feb. 20022 594 inlägg Självklart, o allsmäktige ledare... ;)
Nu är jag också OnT