/ 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
Datoproblemer i Access med SQL og VBscript
Fra : Simon K


Dato : 14-05-04 22:33

Hej Alle

Jeg ved dette er det evige Access/ASP problem, men jeg kan altså ikke finde
svaret i nuværende indslag i newsgroups, så jeg spørger igen.


Jeg har en database med et felt der indeholder et nøjagtigt tidspunkt
formateret således: dd-mm-yy hh:mm:ss

Jeg har så et VBscript der med SQL indsætter en dato - fx. 08-05-2004
20:59:02 - og et andet der senere trækker det ud.
Alt dette fungerer fint når jeg tester det på min egen computer.

Men når jeg kører det hos min webudbyder bliver outputtet til 05-08-2004
20:59:02. Jeg har sporet fejlen til at være i input-sætningen. Jeg
observerer ligeledes at der ingen problemer er med sætningen 13-05-2004,
fordi den ikke kan ombytte måned og dag her. Den klager ikke, den sætter det
bare rigtigt ind.

Jeg har prøvet følgende (også i kombinationer) i min input SQL for at løse
problemet:

* indsat <%= Session.LCID = 1030 %> på min asp-side
* indsat med Dateserial(2004, 05, 08)

Problemet er, at dette tilsyneladende intet med VBscript og ASP har at gøre,
for <%= Dateserial(2004, 05, 08) %> returnerer 08-05-2004 - altså ingen
problemer.

Min udbyder siger at dette er en kendt fejl ved MDAC (de har opdateret til
v2.8 uden at dette løste problemet) og har foreslået at jeg skal scripte mig
ud af problemet. Men da jeg ikke kan se nogle problemer med scriptet er den
eneste løsning jeg kender, at narre VB ved at bytte rundt på måned og dag.
Men dette er super uholdbart, da jeg så skal rundt i alle mine SQL-sætninger
og ændre dette + jeg skal ændre tilbage når de løser problemet.
Det virker også som noget af en B-løsning.

(jeg er klar over at dette MÅSKE mere er et accesssvar, men jeg prøver lige
her, da jeg er i tvivl og ved at mange af hajerne er hajer i begge fora)

Er der nogen der kender A-løsningen?

pft.
/Venlig hilsen Simon K



 
 
Jens Gyldenkærne Cla~ (15-05-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 15-05-04 09:27

Simon K skrev:

> Jeg har en database med et felt der indeholder et nøjagtigt
> tidspunkt formateret således: dd-mm-yy hh:mm:ss

Nej - du har en database der som standard viser dine datoer i
ovenstående format. Det er vigtigt at holde fast i at der er
forskel på den datoværdi der gemmes i databasen (i et eller andet
internt format) og den tekstrepræsentation af værdien du ser når du
åbner tabellen.

> * indsat <%= Session.LCID = 1030 %> på min asp-side
> * indsat med Dateserial(2004, 05, 08)

Hvordan har du indsat med DateSerial? Har du brugt asp's DateSerial
eller Access' Dateserial? (det er kun den sidste metode der sikrer
mod fejlfortolkninger).

> Problemet er, at dette tilsyneladende intet med VBscript og
> ASP har at gøre, for <%= Dateserial(2004, 05, 08) %>
> returnerer 08-05-2004 - altså ingen problemer.

Det tyder på at du lader asp-parseren fortolke DateSerial - det
skal du ikke. Tag et kig på <http://asp-faq.dk/article/?id=98> - og
læg godt mærke til placeringen af anførselstegn.


> Min udbyder siger at dette er en kendt fejl ved MDAC (de har
> opdateret til v2.8 uden at dette løste problemet) og har
> foreslået at jeg skal scripte mig ud af problemet.

Som nævnt nogle gange før i gruppen - undgå tekstrepræsentationer
af datoer hvis det overhovedet er muligt. Det er det efter min
bedste overbevisning i dit tilfælde. Så er du helt uafhængig af
mærkværdigheder i MDAC/Access mv.
--
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

Simon K (15-05-2004)
Kommentar
Fra : Simon K


Dato : 15-05-04 22:04


"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote in message
news:Xns94EA6A5A3E6F3jcdmfdk@gyrosmod.cybercity.dk...
>....
> Det tyder på at du lader asp-parseren fortolke DateSerial - det
> skal du ikke. Tag et kig på <http://asp-faq.dk/article/?id=98> - og
> læg godt mærke til placeringen af anførselstegn.
>
Sådan! Jeg læste den artikel og satte det her sammen:

Mydateandtime = "DateSerial(" & Year(now) & ", " & Month(now) & ", " &
Day(now) & ")+Timeserial(" & Hour(now) & ", " & Minute(now) & ", " &
Second(now) & ")"

SQL = "INSERT INTO db DATE = " & Mydateandtime & ""

Så fungerer det med noget der svarer til Now i ét felt.

Mange tak for hjælpen
Venlig hilsen Simon K



Jens Gyldenkærne Cla~ (16-05-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 16-05-04 22:36

Simon K skrev:

> Sådan! Jeg læste den artikel og satte det her sammen:

> Så fungerer det med noget der svarer til Now i ét felt.

Godt - tillykke.

Husk bare at hvis det drejer sig om en værdi som dags dato, så har
Access (og mange andre databaser) også funktioner der direkte giver
denne værdi. For at indsætte den aktuelle dato og tid i Access kan
du blot skrive:

strSQL = "INSERT INTO tabel (datofelt) VALUES (Now())"

(igen, bemærk placeringen af anførselstegn - Now() skal sendes som
tekst til databasen)

Og det allerletteste, forudsat at man altid gerne vil have dags
dato sat ind i et givent felt: Brug Now som standardværdi for
feltet.
--
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

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