MegamanMedlem sedan jan. 2004118 inläggTjenare alla på detta exelenta forum!!!!
Jag skulle vilja få lite hjälp utav er angående att få en databas att automatiskt sätta sig på noll efter vaje månad om det går???
Jag har sökt för att inte störa er men lyckas inte med det jag hittade så nu vänder jag mig till er här!!!
Jag har kommit så långt med "@nders hjälp att jag kan nollställa det manuellt via admin sidan via en länk.
Jag har skapat ett fält som heter SlutDatum där hade jag tänkt mig att nästa datum som den skall nollställas skall skrivas in den är Datum/Tid.
Jag vet inte om det går att fixa med denna kod snutt som jag skickar med här har då i allfall inte lyckats fixa det med denna kod det är kopplingen till databasen. OBS det är inte hela koden /OBS.
Här är koden:
<%If Request.Querystring("go") = "" Then
Set RecSet = Server.CreateObject("ADODB.Recordset")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DB
Const toppPerSida = 30
If Request.QueryString("page") = "" then
page = 1
Else
page = Request.QueryString("page")
End If
RecSet.CursorLocation = 3
RecSet.CacheSize = toppPerSida
SQL = "Select * From topplista Order By [In] Desc"
RecSet.Open SQL, Conn, 1, 2
%>
Fälten som skall nollställas heter In och Out
SQL = "UPDATE topplista SET [In]=0, [Out]=0"
Detta funkar ju att nolställa manuellt
Jesper TMedlem sedan nov. 20017 144 inläggOm du använder Ms Sql så går det ja.
Inte i access.
MegamanMedlem sedan jan. 2004118 inläggNopp andvänder vanlig acces databas!!!
Humm synd att det inte verkar gå enligt dig Jesper T.
Jag låter tråden vara öppen några dagar för att se om någon annan har någon special sätt att lösa det på
Men tack för ditt svar ändå Jesper T
I värsta fall är det väl inte så farligt att nollställa den manuellt men om man kan göra det automatiskt så är det ett plus på kanten...
MVH Megaman
Du skulle kunna göra en applikation i t.ex. VB som utför det du vill utföra i databasen och kontrollera datumer varje dag 00.00.
@ndersMedlem sedan juni 200032 967 inläggHar man tillgång till servern kan man använda schemaläggaren i Windows för att exekvera ett VBScript på servern. Annars kan jag se ett par alternativ:
- Schemalägg ett besök med lämplig webbläsare från din egen dator med schemaläggaren i Windows.
- Låt första besökare efter given tidpunkt exekvera scriptet som nollställer fälten i tabellen.
Jag hade valt alternativ två.
Mvh
MegamanMedlem sedan jan. 2004118 inlägg
@nders skrev:
(2) Låt första besökare efter given tidpunkt exekvera scriptet som nollställer fälten i tabellen.
Jag hade valt alternativ två.
Humm hur gör man detta då kan ni komma med ett litet föslag som jag kan försöka att leka med
Hher0nMedlem sedan feb. 200230 inlägg En liten idé kan ju vara att du lägger till en kolumn i tabellen som heter förslagvis month och spar månadens nummer där.
Jämför sedan:
If month <> month(now) Then
SQL = "UPDATE topplista SET [In]=0, [Out]=0, [month] = month(now)"
End If
EEclipseMedlem sedan juli 20003 825 inlägg Det är många duktiga utvecklare som ratar Access. Väldigt mycket går i Access, man får bara vara lite mer kreativ.
Precis som Heron säger, ha datum som en parameter i din tabell.
***
I din kod gör du följande:
1. Fråga om dteCreated = samma månad som den nuvarande månaden.
2. Om det är samma månad, då gör du en viss sak, lämpligen UPDATE.
3. Om det är en annan månad (dvs. ny månad) då gör du en annan sak, lämpligen INSERT.
***
I SQL Server kan man ställa in att servern gör saker automatiskt. Men varför ska en viss sak ske just 00:00 när det lika gärna kan ske 01:34, dvs. när första besökaren besöker webbplatsen?
Med detta manéer kan du optimera mycket av koden på din webbplats. Det är inte "politiskt korrekt" att göra så, många kommer säga att det du gör är fel.
Men det fungerar. Du kan trösta dig med det! :-)
MegamanMedlem sedan jan. 2004118 inläggJag försökte med detta men är inte säker på om det fungerar
If month <> month(now) Then
SQL = "UPDATE topplista SET [In]=0, [Out]=0, [month] = month(now)"
End If
Jag för nog nollställa den manuellt :-(
Och på svaret som Eclipse gav vet jag inte hur man skall göra
men som sagt var jag får tacka er som har svarat på mina frågor...
MVH Megaman
EEclipseMedlem sedan juli 20003 825 inlägg Min vän!
Jag tror det är så att du skriver så mycket mindre genomtänkt och det är därför ingen hjälper dig.
Folk är hjälpsamma, men hjälpsamheten avtar potentiellt med slarvigt skrivna inlägg...
***
Ställ en fråga i taget: Hur får jag reda på vilken månad det är? Det finns, mig veterligen, inget som heter month(now).
Sen har du lite dumma (mindre genomtänkta) namn på dina columner.
Dessutom, det är ju jättedumt att du nollställer räknaren! Då har du ju inget att jämföra med! Varför ska du logga trafiken månad för månad och inte spara resultatet??
Ny månad = ny post.
Välj dessa namnen:
[topplista]
intID -- räknare
dteCreated -- datum
intIn -- tal
intOut -- tal
Det är kanske enklast att börja i den änden...???
***
När jag läser detta inlägger inser jag att det är lite dumt skrivet av mig... Jag vill inte att du ska känna att jag nervärderar dig på något vis!
Hade jag inte brytt mig hade jag inte postat inlägget! Trots mina korkade formuleringar!!
Funderar på att göra en sajt som mera i detalj går igenom optimering i ASP och Access. Det finns en allmän, felaktig, uppfattning av att man inte kan ha en sajt med flera tusen besökare om dagen i Access utan att göra avkall på svarstiderna på respektive sida.
MegamanMedlem sedan jan. 2004118 inläggAnledningen till att jag vill nollställa den varje månad är den att det är en topplista och jag vill att alla skall få en chans att ligga längst upp såg att Kalle har haft sin sida på topplistan i 2 år då kommer Kalle förmodligen att ha så många träffar att andra inte har en chans att ligga på topp därför vill jag nolställa databasen där jag spara träffar in och ut
Är det mer korrekt så här då???
If Month <> Month(now()) Then
SQL = "UPDATE topplista SET [In] = 0, [Out] = 0, [Month] = Month(Date())"
End If
Eller skall det vara så här???
If Month <> Month(Date()) Then
'SQL = "UPDATE topplista SET [In] = 0, [Out] = 0, [month] = < #"&DateAdd("m",1,Now)&"#")
End If
Jag är ingen höjdare på databaser eller på asp heller men jag har försökt med lite olika alternativ inget verkar fungera det är säkert lätt eller så har jag missat något någonstans
@ndersMedlem sedan juni 200032 967 inläggMonth är inget bra namn på en variabel (det finns ju en funktion som heter Month().). Och var får du det värdet ifrån?
Men om du ändå har månad som fält i tabellen med topplistan, så förstår jag inte varför du måste nollställa allt med jämna mellanrum? Då är det ju bara att använda det fältet som villkor i dina SQL-frågor när du hämtar ut topplistan.
Eclipse skrev:
Det finns, mig veterligen, inget som heter month(now).
http://www.devguru.com/technologies/wml/vbscript/quickref/month.html
Mvh
MegamanMedlem sedan jan. 2004118 inläggJa det är det jag försöker med men jag vet inte hur jag skall göra
men jag vet inte hur jag skall ställa frågan i min SQL fråga???
så därför testade jag med If
Jag har bytt namn på fältet till Manad nu och om jag inte är helt ute och cyklar så skall den vara tal eller???
Om du har ett exempel på hyllan så får du mer än gärna dela med dig utav det @nders
MVH Megaman
SELECT * FROM Topplistan
WHERE Month( Topplistan.Datum) = Month( Date() )
MegamanMedlem sedan jan. 2004118 inläggJag löste det på detta viset:
SQL = "UPDATE topplista SET [In] = 0, [Out] = 0, [Manad] = MONTH(NOW()) WHERE [Manad] <> MONTH(NOW())"
MVH Megaman...
CatZMedlem sedan jan. 20022 440 inläggJag tyckte hela denna tråden var rätt rolig :) Ingen som förstod vad någon annan skrev ;) Ibland blir det så hehe :p