Avatar billede cobra Nybegynder
15. august 2002 - 09:52 Der er 2 kommentarer og
1 løsning

Dato forspørelse !

jeg kan ikke forstår dette
den her line virker

qkategorisql = "select * from news where dato > now order by dato desc"
  set flerers = nyhederconn.execute(qkategorisql)

men den her virker ikke HVORFOR !!!!!!!!!!


mkategorisql = "select top 2 * from news order by dato desc"
set nytrs = nyhederconn.execute(mkategorisql)

tid = nytrs("dato")


qkategorisql = "select * from news where dato > "& tid &" order by dato desc"
  set flerers = nyhederconn.execute(qkategorisql)
Avatar billede neteffect Nybegynder
15. august 2002 - 11:11 #1
Det handler om dato på SQL-facon kontra dato på VBScript-facon

Et SQL-statement overgives til driveren som en tekststreng. Datoer (TIMESTAMP) skal være i amerikansk format, dvs. mm/dd/yyyy hh:mm:ss AM/PM.
I dit første ekesempel er det uklart, hvad funktionen now egentlig resulterer i, for jeg mener ikke den er ikke en del af standard SQL. Men tilsyneladende giver den det ønskede resultat.

tid = nytrs("dato")
Nu skal VBScript prøve at finde ud af at omsætte datoen fra databasen til det format, som er bestemt af serverens lande-opsætning (locale). Dit script bør selv angive session.lcid, så du har kontrol over, hvordan VBScript skal forstå datoerne.

Det sidste SQL-statement skal ses som en tekststreng, og variablen tid er derfor evalueret, før SQL ser den. For SQL er det en dato-konstant, og den skal have # omkring, og den skal være i amerikansk format.

qkategorisql = "select * from news where dato > #"& dinKonverterDatoTilUSformatString(tid) &"# order by dato desc"

Selv om du måske havde foretrukket et "så gør du bare lige sådan"-svar, så er der efter min erfaring ingen vej uden om at forstå hvordan det hænger sammen og eksperimentere sig frem til man er sikker på at det altid bliver rigtigt.
Min erfaring siger også, at VBScript CDate konverteringsfunktion ikke altid retter sig efter LCID på samme måde som de andre VBScript-funktioner til datomanipulation. DatePart-funktionen tror jeg derimod virker korrekt.
Avatar billede cobra Nybegynder
15. august 2002 - 11:53 #2
efter lang tids læsning fik jeg det samme ud af det du skriver.....men vil lige sige at af alle de spørgsmål jeg har langt ind på eksperten er dette svar du er kommet med det bedste og det fedste svar jeg har fået...og andre kan også få meget ud af at læse det.

Mange TAK
Jan Hansen
Avatar billede neteffect Nybegynder
15. august 2002 - 12:09 #3
Tak for points! Det glæder mig at du kunne bruge svaret.

Lad mig lige tilføje et tip: Løsningen til problemstillingen skal afprøves først på måneden, dvs i perioden fra den 1. til den 12. Konkret må du vente til begyndelsen af september, før du kan blive helt sikker på, om din løsning virker.
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