/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Vis nyheder ud fra specifik dato
Fra : Thomas Møller Nexø


Dato : 07-02-04 11:24

Hejsa,

Jeg har et lille problem med en side, der fremviser nyheder. Det
er en forside, hvor en del af nyheden, samt overskriften bliver
fremvist og der kan så klikkes hen til hele nyheden via et link.

Jeg trækker nyhederne ud fra databasen via:

Set RsNyheder = Server.CreateObject("ADODB.Recordset")
         RsNyheder.Open "Select * From Nyheder Where DatoUdloeber >= #"
& Date() & "# Order By DatoOprettet DESC", Conn

Som det kan ses har jeg et felt i min tabel, der hedder
"DatoUdloeber" og hvis datoen i dette felt er større end dags
dato skal nyheden vises på forsiden af hjemmesiden, ellers skal
den arkiveres (fremvises på en anden side kaldet arkiv).

Det "sjove" er, at det umiddelbart fungerer - det har virket fint
i en periode, men så pludseligt vises der ingen nyheder åå
forsiden selvom DatoUdloeber ikke er overskreddet.

Er der en fejl i den måde jeg trækker nyhederne ud på, fek,s. ved
datokriteriet?

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
finn elmgaard (07-02-2004)
Kommentar
Fra : finn elmgaard


Dato : 07-02-04 13:12


"Thomas Møller Nexø" <thomas@havensupport.dk> wrote in message
news:c02eck$k45$1@sunsite.dk...
>
> Det "sjove" er, at det umiddelbart fungerer - det har virket fint
> i en periode, men så pludseligt vises der ingen nyheder åå
> forsiden selvom DatoUdloeber ikke er overskreddet.
>
> Er der en fejl i den måde jeg trækker nyhederne ud på, fek,s. ved
> datokriteriet?
>
Har du sat Session.LCID=1030?
mvh
Finn



Thomas Møller Nexø (07-02-2004)
Kommentar
Fra : Thomas Møller Nexø


Dato : 07-02-04 13:25

> Har du sat Session.LCID=1030?
> mvh
> Finn

Hej Finn.

Hved ikke hvad du mener???
Jeg bruger ikke sessions til fremvisning af denne side. På andre sider
hvor jeg fremviser nyheder (ikke med samme kriterie) virker det
upårklageligt. Har det noget med date() funktionen at gøre?


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jesper Nielsen (07-02-2004)
Kommentar
Fra : Jesper Nielsen


Dato : 07-02-04 14:12

> Hved ikke hvad du mener???
> Jeg bruger ikke sessions til fremvisning af denne side. På andre sider
> hvor jeg fremviser nyheder (ikke med samme kriterie) virker det
> upårklageligt. Har det noget med date() funktionen at gøre?

Session.LCID sætter det locale ID, som du ønsker at benytte. 1030 betyder
dansk, og det har bl.a. indvirkning på datoformatet.

--
Mvh. Jesper



Thomas Møller Nexø (07-02-2004)
Kommentar
Fra : Thomas Møller Nexø


Dato : 07-02-04 14:49

>
> Session.LCID sætter det locale ID, som du ønsker at benytte. 1030 betyder
> dansk, og det har bl.a. indvirkning på datoformatet.

Ok, sådan. Men hvor sætter man dette?
I selve sql-sætningen eller?

Jeg forstår det ikke helt, da jeg aldrig har benyttet dette og samtidig
heller aldrig har haft problemer med at nyhederne ikke vises osv.
Men igen, jeg har aldrig brugt datoer til specificering af udløbsdato før.

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jørn Andersen (07-02-2004)
Kommentar
Fra : Jørn Andersen


Dato : 07-02-04 15:53

On Sat, 7 Feb 2004 13:48:38 +0000 (UTC), Thomas Møller Nexø
<thomas@havensupport.dk> wrote:

>>
>> Session.LCID sætter det locale ID, som du ønsker at benytte. 1030 betyder
>> dansk, og det har bl.a. indvirkning på datoformatet.
>
>Ok, sådan. Men hvor sætter man dette?
>I selve sql-sætningen eller?

Nej, du sætter det (næsten) øverst på alle sider (som kan være
sprog-afhængige):
Session.LCID = 1030

>Jeg forstår det ikke helt, da jeg aldrig har benyttet dette og samtidig
>heller aldrig har haft problemer med at nyhederne ikke vises osv.
>Men igen, jeg har aldrig brugt datoer til specificering af udløbsdato før.

Datoer er et kapitel for sig i ASP - prøv at bladre tilbage i gruppen
så er det et spørgsmål, der dukker op igen og igen. Men hvisa m,an
ovberholder nogle helt simple regler, så er det ikke så svært:

1) Sørg for så vidt muligt at bergene på dato-*værdien* - og ikke ud
fra dato-*formatet*.
2) Sæt sprogkode på dine sider.

Så vil siderne skal virke uanset om serveren skifter fra dansk til
engelsk sprog eller om databasen skiftes ud med én med et andet
tegnsæt

Denne side er god at starte med:
http://www.asp-faq.dk/article/?id=98
og den tilknyttede:
http://asp-faq.dk/article/?id=47


Good luck!

--
Jørn Andersen,
Brønshøj

Thomas Møller Nexø (07-02-2004)
Kommentar
Fra : Thomas Møller Nexø


Dato : 07-02-04 16:18

> Nej, du sætter det (næsten) øverst på alle sider (som kan være
> sprog-afhængige):
> Session.LCID = 1030
>
Det virker stadig ikke, men hvis jeg vender udtrykket så alle nyheder hvor dato
er mindre end DatoOprettet vises, vises alle nyhederne på siden. Også dem der
er udløbet?

Set RsNyheder = Server.CreateObject("ADODB.Recordset")
         RsNyheder.Open "Select * From Nyheder Where DatoUdloeber <= #" & Date() & "#
Order By DatoOprettet DESC", Conn

Her vises alle nyheder.

Set RsNyheder = Server.CreateObject("ADODB.Recordset")
         RsNyheder.Open "Select * From Nyheder Where DatoUdloeber >= #" & Date() & "#
Order By DatoOprettet DESC", Conn

Her vises ingen af nyhederne?
Pt. Er der kun én nyhed der er overskredet datomæssigt.

Har jeg lavet noget galt i min sql-sætning?

>
> Datoer er et kapitel for sig i ASP - prøv at bladre tilbage i gruppen
> så er det et spørgsmål, der dukker op igen og igen. Men hvisa m,an
> ovberholder nogle helt simple regler, så er det ikke så svært:
>
Næ, jeg har ikke haft problemer med det før så den kan jeg godt følge.
Men igen, har aldrig haft et felt med en udløbsdato, der sættes op mod dags
dato så måske er det her den går galt?

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (07-02-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 07-02-04 16:36

Thomas Møller Nexø skrev:

> RsNyheder.Open "Select * From Nyheder Where
> DatoUdloeber <= #" & Date() & "#

Prøv at læs indlægget her:
<news:Xns9486779044E7Ajcdmfdk@gyrosmod.dtext.news.tele.dk>. Det er
præcis samme problem, selv om det her er med funktionen Now og en
INSERT-kommando.

Du slipper for en fejlkilde hvis du lader Access fortolke
datofunktionen i stedet for at sende en tekstrepræsentation af
datoen til databasen. Hvis du skifter format her, skal du også
fjerne havelågerne (#).


> Næ, jeg har ikke haft problemer med det før så den kan jeg
> godt følge. Men igen, har aldrig haft et felt med en
> udløbsdato, der sættes op mod dags dato så måske er det her
> den går galt?

Muligvis. Hvis du har brug for at finde datoer i et mere begrænset
område - fx maks en uge frem i tiden - kan du bruge DateDiff-
funktionen. Præcis som med de andre datofunktioner, kan det betale
sig at bruge funktionerne i Access og ikke i Asp.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Thomas Møller Nexø (08-02-2004)
Kommentar
Fra : Thomas Møller Nexø


Dato : 08-02-04 14:21

> Prøv at læs indlægget her:
> <news:Xns9486779044E7Ajcdmfdk@gyrosmod.dtext.news.tele.dk>. Det er
> præcis samme problem, selv om det her er med funktionen Now og en
> INSERT-kommando.

Jeg får desværre en "siden kan ikke vises" på dette link Jens

> Du slipper for en fejlkilde hvis du lader Access fortolke
> datofunktionen i stedet for at sende en tekstrepræsentation af
> datoen til databasen. Hvis du skifter format her, skal du også
> fjerne havelågerne (#).

Lyder som en god ide, men hvordan?
Pt. Er felterne til "DatoOprettet" og "DatoUdloeber" allerede af
formatet "Dato og klokkeslet". Er det der du vil hen, eller er der en
anden metode til dette?

> Muligvis. Hvis du har brug for at finde datoer i et mere begrænset
> område - fx maks en uge frem i tiden - kan du bruge DateDiff-
> funktionen. Præcis som med de andre datofunktioner, kan det betale
> sig at bruge funktionerne i Access og ikke i Asp.

Jeg har brugt Datediff et par gange til andre ting i selve koden på
siden. Altså til at bestemme hvad der skulle vises ud fra en
If-sætning.
Men problemet er, at her skal det være muligt for en bruger, der
opretter en nyhed, at bestemme hvor længe selve nyheden skal vises på
forsiden. Altså ingen fast udløbstid.

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Thomas Møller Nexø (08-02-2004)
Kommentar
Fra : Thomas Møller Nexø


Dato : 08-02-04 14:23

En tilføjelse til dit indlæg.

Kan jeg konkludere at selve SQL-sætningen er sat rigtigt op?
Jeg er en smule i tvivl om dette, selvom jeg fik det rigtige output
til at starte med. Men senere altså slet intet

Det ville være rart at vide om det er andetsteds det kniber...

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (10-02-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 10-02-04 17:30

Thomas Møller Nexø skrev:

>> Prøv at læs indlægget her:
>> <news:Xns9486779044E7Ajcdmfdk@gyrosmod.dtext.news.tele.dk>.

> Jeg får desværre en "siden kan ikke vises" på dette link Jens

Du kan google dig til det: <http://shor.ter.dk/929832689>.

Jeg havde overset at du bruger html.dk - de kan desværre ikke
håndtere news-links.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Jakob Andersen (09-02-2004)
Kommentar
Fra : Jakob Andersen


Dato : 09-02-04 09:35

Thomas Møller Nexø wrote:
> Jeg trækker nyhederne ud fra databasen via:
>
> Set RsNyheder = Server.CreateObject("ADODB.Recordset")
>          RsNyheder.Open "Select * From Nyheder Where DatoUdloeber >= #"
> & Date() & "# Order By DatoOprettet DESC", Conn
>
> Som det kan ses har jeg et felt i min tabel, der hedder
> "DatoUdloeber" og hvis datoen i dette felt er større end dags
> dato skal nyheden vises på forsiden af hjemmesiden, ellers skal
> den arkiveres (fremvises på en anden side kaldet arkiv).

Brug Now() funktionen i Access, alts[>

RsNyheder.Open "SELECT * FROM Nyheder WHERE DatoUdloeber >= NOW() ORDER
BY DatoOprettet DESC", Conn


--
Jakob Andersen

Thomas Møller Nexø (09-02-2004)
Kommentar
Fra : Thomas Møller Nexø


Dato : 09-02-04 18:05

> Brug Now() funktionen i Access, alts[>
>
> RsNyheder.Open "SELECT * FROM Nyheder WHERE DatoUdloeber >= NOW() ORDER
> BY DatoOprettet DESC", Conn

Det ændrer ikke noget. Stadig samme problem

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

finn elmgaard (09-02-2004)
Kommentar
Fra : finn elmgaard


Dato : 09-02-04 21:06


"Thomas Møller Nexø" <thomas@havensupport.dk> wrote in message
news:c02eck$k45$1@sunsite.dk...
> Hejsa,
den arkivers (fremvises på en anden side kaldet arkiv).
>
> Det "sjove" er, at det umiddelbart fungerer - det har virket fint
> i en periode, men så pludseligt vises der ingen nyheder åå
> forsiden selvom DatoUdloeber ikke er overskreddet.
>
> Er der en fejl i den måde jeg trækker nyhederne ud på, fek,s. ved
> datokriteriet?


Hej igen

Det ser ud til at give dig en del problemer, og jeg har nok ikke bedre svar
end du tidligere har fået. Men prøv at være opmærksom på følgende.

Når man i (min) Access håndterer dato på den måde du gør (og som jeg også
har gjort tidligere) kan der opstå et pudsigt fænomen. Det er som om dato
fortolkes "amerikansk", altså 09-02-2004 er den anden september. Det sker
tilsyneladende ikke, når det ikke giver mening, altså 28-01-2004 læses godt
nok som den 28. januar.

Hvis jeg har en DB med datoer fra 27-01-2004 frem til 10-02-2004 og laver
et udtræk med et kriterie, det siger større end 28-01-2004 går det godt.
Laver jeg derimod et udtræk med et kriterie, der siger større end f.eks
03-02-2004 går det galt. Men hvis der er værdier større end d. anden marts
(altså 03-02 byttet om) i DB, får jeg dem med.

Prøv det!

Jeg ved naturligvis ikke om det har noget med dit problem at gøre, men det
kunne jo forklare noget, der har virket, men så er holdt op med at virke.

Go' fornøjelse
Finn




Thomas Møller Nexø (10-02-2004)
Kommentar
Fra : Thomas Møller Nexø


Dato : 10-02-04 17:10

> Når man i (min) Access håndterer dato på den måde du gør (og som jeg også
> har gjort tidligere) kan der opstå et pudsigt fænomen. Det er som om dato
> fortolkes "amerikansk", altså 09-02-2004 er den anden september. Det sker
> tilsyneladende ikke, når det ikke giver mening, altså 28-01-2004 læses godt
> nok som den 28. januar.

Jeg tror du er inde på noget rigtigt her.
Efter at have søgt som en gal på nettet fandt jeg nogle tråde i andre fora
hvor det samme problem bliver debateret.
Jeg testede min egen opsætning - først i Access via en forespørgselv direkte
fra Access, altså hvor jeg byggede en fuldstændig identisk forespørgsel op som
den på min .asp-side. Den virkede fint nok inden i selve Access.
Dernæst ændrede jeg datoen på serveren og ved nogle datoer virkede min
SQL-sætning mens den på andre datoer ikke virkede.

> Hvis jeg har en DB med datoer fra 27-01-2004 frem til 10-02-2004 og laver
> et udtræk med et kriterie, det siger større end 28-01-2004 går det godt.
> Laver jeg derimod et udtræk med et kriterie, der siger større end f.eks
> 03-02-2004 går det galt. Men hvis der er værdier større end d. anden marts
> (altså 03-02 byttet om) i DB, får jeg dem med.

Tak for dit råd.
Jeg er imidlertid kommet frem til en løsning, hvor jeg henter alle poster ud
af databasen med select *, og dernæst gennem en løkke med en If-sætning
verificerer om datoerne (nyederne) skal fremvises på forsiden eller ej.

I mit hovede er dette et skridt tilbage mht. performance, men da der næppe
bliver tale om flere tusinde nyheder og at disse begrænser sig til at være
relativt korte tror jeg ikke man vil kunne mærke den store forskel.

Det er mærkeligt at det ikke vil virke i selve SQL-sætningen når man vha.
datoerne kan lave en If-sætning og validere dem her???
Men det virker i hvert fald nu

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste