Avatar billede k-asp-er Nybegynder
02. maj 2008 - 14:39 Der er 5 kommentarer og
1 løsning

paging og recordsets

- Jeg har følgende


sysDataPath = "Z:\site\db"
strSQL = "SELECT * FROM visits order by session_id desc"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & sysDataPath & "\statistic.mdb"
set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open strSQL, strDSN, 3


If Not (rs.BOF Or rs.EOF) Then
rs.PageSize = 10
rs.AbsolutePage = intPage
intRecCount = rs.PageSize
intPageCount = rs.PageCount

- Visningen kan jeg begrænse, så der kun vises records, der er mindre end 7 dage gamle med dette:

<% if rs("date_time") > date()-7 then %>

- men paging hiver fat i ALLE records

- jeg kan åbenbart ikke finde ud af, kun at hente de records, der er mindre end 7 dage gamle.

- Hjælp

mvh.
k-asp-er
Avatar billede weis Nybegynder
02. maj 2008 - 16:00 #1
du skal nok overveje at kun hente de records ud fra databasen du skal bruge, hvilket vil sige at du nok har et dato felt i databasen (her kaldet "dato"), så din sql sætning bliver noget med:

select * from visits where dato <= curdate() order by session_id desc"

har ikke lige testet den for ved ikke hvilken type databse du bruger (Access, mysql, ms...)
Avatar billede jansangill Nybegynder
02. maj 2008 - 18:03 #2
weis det er access

"Microsoft Access Driver (*.mdb)};DBQ=" & sysDataPath & "\statistic.mdb""

Og self hiver paguing fat i alle records, det er jo det din sql siger den skal.

Som weis siger, begræns dig selv i sql'en.
Avatar billede k-asp-er Nybegynder
02. maj 2008 - 19:08 #3
Underligt nok, så har jeg forsøgt mig med
strSQL = "select * from visits where date_time >= date()-7 order by session_id desc
Men dengang virkede det ikke.
Det gør det nu.
Avatar billede k-asp-er Nybegynder
02. maj 2008 - 19:08 #4
du skal nok overveje at kun hente de records ud fra databasen du skal bruge, hvilket vil sige at du nok har et dato felt i databasen (her kaldet "dato"), så din sql sætning bliver noget med:

select * from visits where dato <= curdate() order by session_id desc"

har ikke lige testet den for ved ikke hvilken type databse du bruger (Access, mysql, ms...)
Send et svar
Avatar billede weis Nybegynder
02. maj 2008 - 20:27 #5
Det er noget tid siden jeg har rodet med access database, så kan ikke huske om det understøtter alle commandoer, men prøv noget ligende nedenstående!

SELECT * FROM visits WHERE dato > DATESUB(CURDATE(), INTERVAL 7 DAY);
Avatar billede weis Nybegynder
02. maj 2008 - 20:34 #6
ahh... læst forkert, hvis det virker, så er der et svar her!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester