2. Jo du kan lagra datumet i databasen utan att det ändras.
3. Kan du inte bara låta scriptet köras när någon loggar in eller liknande, det plockar ju hur som helst bara bort folk som inte varit där sen 60 dagar?
17 svar · 403 visningar · startad av trexter.com
Jag hade tänkt göra så här.
1. Användaren loggar in
2. Jag lagrar tidpunkten för hans inloggning i en databas
Fråga: Kan jag här bara använda Date eller likn., lagra det i en databas och sedan när jag plockar ut det igen så har värdet inte ändrats?
3. Jag kör ett script varannan månad som kollar om det är någon användare i databasen som inte varit inloggad på 60 dagar.
Fråga: Hur ska jag få ett script att köras varannan månad?
Fråga: Finns det något bättre sätt än så som jag lagt upp det (steg 1, 2 och 3)?
2. Jo du kan lagra datumet i databasen utan att det ändras.
3. Kan du inte bara låta scriptet köras när någon loggar in eller liknande, det plockar ju hur som helst bara bort folk som inte varit där sen 60 dagar?
Ok, men blir det inte lite onödigt att köra ett script var gång någon loggar in?
Jag ska använda detta här till en större grej senare så det vore bra om lösningen är någorlunda opimerad...
Jag vet inte hur det är på windows-servrar, men i unix/linux kan man göra ett sk cron-jobb. Det vill säga att en viss åtgärd görs av servern vid en viss tid och dag.
Det är ju även snudd på att man kan köra scriptet manuellt, 6 ggr per år ska man väl hinna med...
Ursprungligen av solbulle Det är ju även snudd på att man kan köra scriptet manuellt, 6 ggr per år ska man väl hinna med...
Jo, men som sagt. Jag ska använda det till en större senare och då måste det skötas proffesionellt!
För övrigt kör jag:
Win 2000 Adv Server med IIS...
Måste bara retas lite ;)
Allvarligt talat vet jag faktist inte hur man ska lösa ditt problem på ett smidigt sätt.
Det enda du kan göra om scriptet ska köras är ju att använda det vid t.ex inloggning(vet inte vad du har för andra välbesökta sidor) eller om det kanske går att köra som en schemalagd funktion i Windows(?)...
Det finns ju nån Schema-nånting i Windows där du kanske kan ställa in att köra en viss fil varje dag...?
Om du har tillgång till servern kan du använda At i kommandotolken för att schemalägga körningen av exempelvis en .vbs-fil som exekverar scriptet.
Anders:
Skulle du kunna ge ett exempel på någonting liknande (vbs-filen alltså)... :)
Om du ser till att skriva ett ASP-script som utför det du vill göra med raderandet, så kan du spara vb-scriptkoden i en .vbs-fil efter några små modifieringar. Den filen kan man sedan exekvera mha kommandotolken.
För att schemalägga exekvering av den vbs-filen använder du kommandot At. För att få reda på syntaxen, öppna kommandotolken och skriv at /? och tryck enter.
Mvh,
När man loggar in kan du kanske samtidigt köra:
conn.execute "delete from members where datediff('m',date,date()) > 2",,128
MVH Jesper :)
Jag får inte detta att fungera. Jag kör MySQL och får meddelandet:
ADODB.Connection.1 error '80004005'
SQLState: 42000
Native Error Code: 1064
[TCX][MyODBC]You have an error in your SQL syntax near '('d', fldDatum, '22/03-2003 17:36:21') >= 1' at line 1
SQL:
"delete from tblShout where datediff('d', fldDatum, '" & Now() & "') >= 1"
Vad är fel?
delete from tblShout where datediff('d', (select fldDatum from tblShout), '" & Now() & "') >= 1
Observera att jag INTE är haj på hur/när man skriver fler SQLsatser i varandra, så det är nästan 100% att det inte funkar :)
Det fungerade inte... samma felmess...
Jag använder mig av nedanstående script, och det fungerar utmärkt. Jag sparar dock datumet enligt modellen: yyyy-mm-dd (t.ex. 2003-03-22), och kör sedan:
SQL = "DELETE FROM members where left(fldDatum,10) < '" & date - 60 & "'"
(left-grejen behöver du inte ha om du endast sparar datumet i den kolumnen, men eftersom du verkar vilja ha tidpunkt också, så måste du köra det).
Sebbe: Subqueries fungerar inte i MySQL.
date - 60 ? Det verkar konstigt. :)
SQL = "DELETE FROM members where left(fldDatum,10) < '" & dateadd("d", date,- 60) & "'"