/ 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
Dato ind i Access
Fra : Peter Nielsen


Dato : 31-08-06 02:06

Hej igen NG

Sidder her med en Access database.. jeg har sat mit felt til et Dato og
klokkeslet type... og hvis jeg så sætter formatet til Standard format så
viser den at det skal være DD-MM-YYYY HH:MM:SS

Og så har jeg den her SQL:

INSERT INTO artist_kalender (datetime) VALUES (#31-08-2006 03:03:17#)

Og uanset om jeg fjerner # eller laver dem om til ' eller ik har noget der
så melder den fejl...Ved ikke hvad jeg gør galt...Hvis jeg fjerner datoen
(har også nogle andre felter) så virker det fint.. så kan jeg sagtens adde
poster til databasen... men fejlen ligger i den streng der når jeg har
datoen med... Nogle der kender fejlen?

MVH
Peter Nielsen



 
 
Michael Zedeler (31-08-2006)
Kommentar
Fra : Michael Zedeler


Dato : 31-08-06 09:00

Peter Nielsen wrote:
> Sidder her med en Access database.. jeg har sat mit felt til et Dato og
> klokkeslet type... og hvis jeg så sætter formatet til Standard format så
> viser den at det skal være DD-MM-YYYY HH:MM:SS
>
> Og så har jeg den her SQL:
>
> INSERT INTO artist_kalender (datetime) VALUES (#31-08-2006 03:03:17#)
>
> Og uanset om jeg fjerner # eller laver dem om til ' eller ik har noget der
> så melder den fejl...Ved ikke hvad jeg gør galt...Hvis jeg fjerner datoen
> (har også nogle andre felter) så virker det fint.. så kan jeg sagtens adde
> poster til databasen... men fejlen ligger i den streng der når jeg har
> datoen med... Nogle der kender fejlen?

I de fleste systemer, jeg kender, er "datetime" et reserveret ord. Prøv
at ændre feltnavnet. Det havde også været relevant hvis du havde bragt
fejlen fra Access i din posting.

Mvh. Michael.
--
Which is more dangerous? TV guided missiles or TV guided families?
I am less likely to answer usenet postings by anonymous authors.
Visit my home page at http://michael.zedeler.dk/

Jens Gyldenkærne Cla~ (31-08-2006)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 31-08-06 09:46

Peter Nielsen skrev:

> Sidder her med en Access database.. jeg har sat mit felt til
> et Dato og klokkeslet type... og hvis jeg så sætter formatet
> til Standard format så viser den at det skal være DD-MM-YYYY
> HH:MM:SS


Det format du vælger i Access er et visningsformat - det bestemmer
hvordan Access skal vise indholdet af feltet. Det bestemmer *ikke*
hvordan datoer i sql-sætninger skal opfattes.


> Og så har jeg den her SQL:
>
> INSERT INTO artist_kalender (datetime) VALUES (#31-08-2006
> 03:03:17#)


Som Michael har nævnt er datetime formentlig et reserveret ord. Det
er bedst at undgå at bruge den slags som navne til tabeller/felter
o.l. - men hvis du vil holde fast i navnet, kan du prøve at
indklamme det: [datetime]

Det er muligt at forespørgslen så vil køre korrekt, men generelt
vil jeg ikke anbefale at man bruger datoangivelser der kan
misforstås (dvs. dd-mm-yyyy/yy-mm-dddd) i forespørgsler.

Der er flere måder at lave sikre datoer i sql på. I Access kan man
benytte funktionerne dateserial og timeserial - se mere her:
<http://asp-faq.dk/article/?id=98>.

En anden mulighed er at bruge datoformatet yyyy-mm-dd (fx 2006-08-
31) - her er der ingen forvekslingsmuligheder (yyyy-dd-mm anvendes
ikke i praksis).

Endelig er det en god ide at anvende databasens egne datofunktioner
i stedet for asp's ækvivalenter når det er muligt. Hvis man fx skal
gemme dags dato i et felt, er der grundlæggende to måder:

asp:

Dim dato, strSQL
dato = Now()
strSQL = "INSERT INTO tabel (datofelt) VALUES (#" & dato & "#)"
conn.execute (strSQL)


Access/asp:

Dim strSQL
strSQL = "INSERT INTO tabel (datofelt) VALUES (Now())
conn.execute (strSQL)


I den første udgave overføres datoen som en tekst. Præcis hvordan
teksten ser ud afhænger af opsætningen på serveren og den aktuelle
asp-side. Hvordan tekstrepræsentationen af datoen konverteres
tilbage til en dato afhænger af opsætningen på serveren. Der
konverteres altså først fra en dato til en tekst og dernæst fra en
tekst til en dato - og i denne konvertering kan der opstå fejl.

I den anden udgave er det databasen selv der beregner datoen - og
uanset hvordan serveren er sat op, skal det nok være dags dato der
bliver sat ind.

En variant af den sidste model er i øvrigt at benytte muligheden
for en standardværdi i et felt - så kan man helt undlade at tænke
på datofeltet når man opretter nye poster (bare man har sat til det
Now() i databasen).
--
Bolig søges. Andel eller leje i Emdrup, Nordvest, Nørrebro, Søborg
eller Brønshøj, max 6000 pr. måned.
Kontakt pr. mail - nospam(at)gyros.dk
Jens Gyldenkærne Clausen

Peter Nielsen (31-08-2006)
Kommentar
Fra : Peter Nielsen


Dato : 31-08-06 10:06

Utroligt.. synes jeg har brugt datetime før som post.. men havde åbenbart
glemt at jeg har erfaret det en gang før at det er et reseveret ord... sådan
går det når man vil lave det hele om natten

1000 tak for hjælpen

Peter



Søg
Reklame
Statistik
Spørgsmål : 177547
Tips : 31968
Nyheder : 719565
Indlæg : 6408799
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste