Med denna kod vill jag radera alla som har varit inaktiva i mer än 89 dagar.
<%Days=DateDiff(d, Now, Datum)
If Days > 89 Then
objConn.Execute("DELETE FROM tblUsers")
End if%>
Datum är det datum då medlemmen senast var inloggad.
Felmeddelandet jag får är
Microsoft VBScript runtime error '800a0005'
Invalid procedure call or argument: 'DateDiff'
/default.asp, line 24
Jesper TMedlem sedan nov. 20017 144 inlägg testa : DateDiff("d", Now, Datum)
Jesper TMedlem sedan nov. 20017 144 inlägg Tänk dock på att din Delete tar bort alla poster ur tabellen tblUsers
jag har ändrat till
<%
dbDate=mainRS("Datum")
Days=DateDiff("d", Date, dbDate )
do until mainRS.EOF
If Days > 89 Then
objConn.Execute("DELETE FROM tblUsers")
End if
mainRS.MoveNext
Loop%>
men den loopar ändå inte igenom alla poster och raderar inget från databasen. Jag har koden på defaultsidan så att den ska köras så fort nån loggar in
J.N.Medlem sedan apr. 20031 660 inlägg HEJ!
Då är det endast två saker att göra:
1. Skriv ut vad Days egentligen är.
2. Kontrollera syntaxen, behövs inte de två extraargumenten?
http://www.devguru.com/Technologies/vbscript/quickref/datediff.html
WebbisNet: Som Jepser T skriver nu gör du (när det börja fungera) OM "Days" är större än 89 då ska du rensa hela databasen i tblUsers
kan tänka mig din kod ska se ut något i stil med:
<%
set mainRS = objconn.execute("Select datum,id from tblUsers")
do until mainRS.eof
dbDate= cdate(mainRS("Datum"))
Days=DateDiff("d", Date, dbDate )
If Days > 89 Then
objConn.Execute("DELETE FROM tblUsers where ID = " & mainRS("ID"))
End if
mainRS.MoveNext : Loop
din gamla kod gör den inte en krock där då du säger att do until manrs.eof och sen försöker du ändå ta ut ett manRS("datum") innan loopen börja?
dbDate= mainRS("Datum")
Days=DateDiff("d", Date, dbDate )
do until mainRS.EOF
If Days > 89 Then
objConn.Execute("DELETE FROM tblUsers")
End if
mainRS.MoveNext
Loop%>
J.N.Medlem sedan apr. 20031 660 inlägg HEJ!
Varför inte plocka fram rätt poster direkt i sql:en?