/ 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 bytter periodisk om på dd og mm
Fra : Allan Gorm Pedersen


Dato : 04-09-11 13:42

Jeg har et script som opdaterer et varekartotek med en
reserveringsdato, i min MS-access DB.

Problemet opstår hvor datoen er mindre end måneden f.eks.
04-09-2011(dd-mm-aaaa). Her tilskrives DB til tider 09-04-2011 i
stedet for. Det underlige er, at det senere samme dato tilskrives
04-09-2011 (SKØRT!)

ET ANDET STED ER JEG BLEVET ANBEFALET DENNE OPBYGNING:
Tid = FormatDateTime(Now, vbLongTime)
Aar = DatePart("yyyy",Now())
Maaned = DatePart("m",Now())
Dag = DatePart("d",Now())
Datnu = DateSerial(Aar,Dag,Maaned) & " " & Time

MIT SQL:
strSQL = "Update varekartotek set "
strSQL = strSQL & "indkoebsid= '" & strIndkoebsID & "', "
strSQL = strSQL & "reserveret= '" & DatNu & "' "
strSQL = strSQL & " Where Id = " & Request.Querystring("id") & ""
Conn.Execute(strSQL)

For en god ordens skyld, skal det nævnes at "reserveret" er
defineret til "Dato og klokkeslæt" i Access
Er der tale om et opsætningsproblem?
Er det min udbyder den er gal med WEB10?

Håber på du er i stand til at hjælpe.

Med venlig hilsen
Allan Gorm Pedersen
www.postfrisk.dk
www.laurbjerg.dk

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

 
 
Birger Sørensen (04-09-2011)
Kommentar
Fra : Birger Sørensen


Dato : 04-09-11 14:22

Allan Gorm Pedersen sendte dette med sin computer:
> Jeg har et script som opdaterer et varekartotek med en
> reserveringsdato, i min MS-access DB.
>
> Problemet opstår hvor datoen er mindre end måneden f.eks.
> 04-09-2011(dd-mm-aaaa). Her tilskrives DB til tider 09-04-2011 i
> stedet for. Det underlige er, at det senere samme dato tilskrives
> 04-09-2011 (SKØRT!)
>
> ET ANDET STED ER JEG BLEVET ANBEFALET DENNE OPBYGNING:
> Tid = FormatDateTime(Now, vbLongTime)
> Aar = DatePart("yyyy",Now())
> Maaned = DatePart("m",Now())
> Dag = DatePart("d",Now())
> Datnu = DateSerial(Aar,Dag,Maaned) & " " & Time
>
> MIT SQL:
> strSQL = "Update varekartotek set "
> strSQL = strSQL & "indkoebsid= '" & strIndkoebsID & "', "
> strSQL = strSQL & "reserveret= '" & DatNu & "' "
> strSQL = strSQL & " Where Id = " & Request.Querystring("id") & ""
> Conn.Execute(strSQL)
>
> For en god ordens skyld, skal det nævnes at "reserveret" er
> defineret til "Dato og klokkeslæt" i Access
> Er der tale om et opsætningsproblem?
> Er det min udbyder den er gal med WEB10?
>
> Håber på du er i stand til at hjælpe.
>
> Med venlig hilsen
> Allan Gorm Pedersen
> www.postfrisk.dk
> www.laurbjerg.dk

Kender ikke ASP.
Kan det have noget med
Maaned = DatePart("m",Now())
at gøre?
"m" kan lige så godt være minutter...

Ellers sammenlign de to rutiner, der gør forskelligt. Der må jo være et
eller andet, der får den ene til at gøre rigtigt, og den anden forkert.

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Allan Gorm Pedersen (04-09-2011)
Kommentar
Fra : Allan Gorm Pedersen


Dato : 04-09-11 14:37

Hej Birger
Tak for din hjælpende hånd.

ASP anvender følgende værdier:
M = Måned
H = Time
N = Minut
S = Sekund

Så den burde være god nok, men som beskrevet er der periodiske fejl.
F.eks. datoen 04-09-2011(dd-mm-aaaa) bliver en gang imellem til 09-04-2011.
Når datoen er forkert, er der altid byttet om på dd & mm (aldrig andre
værdier)

Jeg har forsøgt mange andre ting, og hver gang jeg tror at have løst det,
men så opstår problemet igen!

Med venlig hilsen

Allan Gorm Pedersen
www.postfrisk.dk
www.laurbjerg.dk


>
> Kender ikke ASP.
> Kan det have noget med
> Maaned = DatePart("m",Now())
> at gøre?
> "m" kan lige så godt være minutter...
>
> Ellers sammenlign de to rutiner, der gør forskelligt. Der må jo være et
> eller andet, der får den ene til at gøre rigtigt, og den anden forkert.
>
> Birger
>
> --
> http://varmeretter.dk - billig, sund og hurtig mad
> http://bbsorensen.dk
>
>


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

Birger Sørensen (04-09-2011)
Kommentar
Fra : Birger Sørensen


Dato : 04-09-11 15:01

Allan Gorm Pedersen har bragt dette til verden:
> Hej Birger
> Tak for din hjælpende hånd.
>
> ASP anvender følgende værdier:
> M = Måned
> H = Time
> N = Minut
> S = Sekund
>
> Så den burde være god nok, men som beskrevet er der periodiske fejl.
> F.eks. datoen 04-09-2011(dd-mm-aaaa) bliver en gang imellem til 09-04-2011.
> Når datoen er forkert, er der altid byttet om på dd & mm (aldrig andre
> værdier)
>
> Jeg har forsøgt mange andre ting, og hver gang jeg tror at have løst det,
> men så opstår problemet igen!
>
> Med venlig hilsen
>
> Allan Gorm Pedersen
> www.postfrisk.dk
> www.laurbjerg.dk
>
>
>>
>> Kender ikke ASP.
>> Kan det have noget med
>> Maaned = DatePart("m",Now())
>> at gøre?
>> "m" kan lige så godt være minutter...
>>
>> Ellers sammenlign de to rutiner, der gør forskelligt. Der må jo være et
>> eller andet, der får den ene til at gøre rigtigt, og den anden forkert.
>>
>> Birger
>>
>> --
>> http://varmeretter.dk - billig, sund og hurtig mad
>> http://bbsorensen.dk
>>
>>

Du er da vældig velkommen ;>)

Tid = FormatDateTime(Now, vbLongTime)
Aar = DatePart("yyyy",Now())
Maaned = DatePart("m",Now())
Dag = DatePart("d",Now())
Datnu = DateSerial(Aar,Dag,Maaned) & " " & Time

Undrer mig lidt, at du først bruger FormatDateTime, som vel burde
formattere både date og time? Og den bør vel umiddelbart kunne bruges
som DatNu? (Og ellers ville jeg skrive en funktion, der gør det, og
bruge den hver gang)
Derefter henter du 3 separate værdier, og giver dem til DateSerial. Kan
du ikke bare bruge Now der også?
Findes der ikke en FormatDate (uden Time)?
Og du skriver at "reserveret" er defineret på en bestemt måde..
Har ASP så ikke funktioner til at formattere tilsvarende så du ikke
behøver gøre det selv?
(MySQL datetime hedder YYYY-MM-DD HH:II:SS, hvilket er et fornuftigt
format - IMHO det eneste rigtige -, fordi det også udenfor databasen
giver en korrekt kronlogisk sortering. At det så skal formatteres
anderledes til visning er noget andet - der er forskel på at behandle
data og præsentere dem for en bruger)

I øvrigt har du en - i hvert fald principiel - fejl..
De to linier
*Datnu* = DateSerial(Aar,Dag,Maaned) & " " & Time
strSQL = strSQL & "reserveret= '" & *DatNu* & "' "
bruger tilsyneladende samme variabel - stavet forskelligt.
Ved ikke om det gør nogen forskel i ASP.

Og ellers har jeg ikke nok viden om funktionerne i ASP til at sætte
fingeren på et svagt punkt... ;>)

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Allan Gorm Pedersen (04-09-2011)
Kommentar
Fra : Allan Gorm Pedersen


Dato : 04-09-11 17:00

Hej Birger

Endnu engang tak for dine input.

Nu har jeg studeret mine andre DB på samme server, og der er tilsyneladende en
enkelt DB som ikke fejler i datoen. Derfor afprøver jeg den fremgangsmåde først.
Desværre har der været begrænset trafik og deraf til følge kun få data.
MEN DET SER SÅDAN UD:
Datnu = Month(Now) & "-" & Day(Now) & "-" & Year(Now)& " " & Time()

I mellemtiden er der har der med denne sætning været trafik uden anledning til
problemer! Så måske

Du har mange gode betragtninger - hvilket jeg vil gennemgå, hvis do. også
svigter mig!

Tak for indsatsen

../allan

---------------------------------------------------------
Birger Sørensen wrote in dk.edb.internet.webdesign.serverside.asp:
> Allan Gorm Pedersen har bragt dette til verden:
> > Hej Birger
> > Tak for din hjælpende hånd.
> >
> > ASP anvender følgende værdier:
> > M = Måned
> > H = Time
> > N = Minut
> > S = Sekund
> >
> > Så den burde være god nok, men som beskrevet er der periodiske fejl.
> > F.eks. datoen 04-09-2011(dd-mm-aaaa) bliver en gang imellem til 09-04-2011.
> > Når datoen er forkert, er der altid byttet om på dd & mm (aldrig andre
> > værdier)
> >
> > Jeg har forsøgt mange andre ting, og hver gang jeg tror at have løst det,
> > men så opstår problemet igen!
> >
> > Med venlig hilsen
> >
> > Allan Gorm Pedersen
> > www.postfrisk.dk
> > www.laurbjerg.dk
> >
> >
> >>
> >> Kender ikke ASP.
> >> Kan det have noget med
> >> Maaned = DatePart("m",Now())
> >> at gøre?
> >> "m" kan lige så godt være minutter...
> >>
> >> Ellers sammenlign de to rutiner, der gør forskelligt. Der må jo være et
> >> eller andet, der får den ene til at gøre rigtigt, og den anden forkert.
> >>
> >> Birger
> >>
> >> --
> >> http://varmeretter.dk - billig, sund og hurtig mad
> >> http://bbsorensen.dk
> >>
> >>
>
> Du er da vældig velkommen ;>)
>
> Tid = FormatDateTime(Now, vbLongTime)
> Aar = DatePart("yyyy",Now())
> Maaned = DatePart("m",Now())
> Dag = DatePart("d",Now())
> Datnu = DateSerial(Aar,Dag,Maaned) & " " & Time
>
> Undrer mig lidt, at du først bruger FormatDateTime, som vel burde
> formattere både date og time? Og den bør vel umiddelbart kunne bruges
> som DatNu? (Og ellers ville jeg skrive en funktion, der gør det, og
> bruge den hver gang)
> Derefter henter du 3 separate værdier, og giver dem til DateSerial. Kan
> du ikke bare bruge Now der også?
> Findes der ikke en FormatDate (uden Time)?
> Og du skriver at "reserveret" er defineret på en bestemt måde..
> Har ASP så ikke funktioner til at formattere tilsvarende så du ikke
> behøver gøre det selv?
> (MySQL datetime hedder YYYY-MM-DD HH:II:SS, hvilket er et fornuftigt
> format - IMHO det eneste rigtige -, fordi det også udenfor databasen
> giver en korrekt kronlogisk sortering. At det så skal formatteres
> anderledes til visning er noget andet - der er forskel på at behandle
> data og præsentere dem for en bruger)
>
> I øvrigt har du en - i hvert fald principiel - fejl..
> De to linier
> *Datnu* = DateSerial(Aar,Dag,Maaned) & " " & Time
> strSQL = strSQL & "reserveret= '" & *DatNu* & "' "
> bruger tilsyneladende samme variabel - stavet forskelligt.
> Ved ikke om det gør nogen forskel i ASP.
>
> Og ellers har jeg ikke nok viden om funktionerne i ASP til at sætte
> fingeren på et svagt punkt... ;>)
>
> Birger
>
> --
> http://varmeretter.dk - billig, sund og hurtig mad
> http://bbsorensen.dk
>
>


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

Stig Johansen (05-09-2011)
Kommentar
Fra : Stig Johansen


Dato : 05-09-11 08:27

Birger Sørensen wrote:

>
> Og ellers har jeg ikke nok viden om funktionerne i ASP til at sætte
> fingeren på et svagt punkt... ;>)

Det er ikke ASP som sådan, men Access, der er lidt 'mærkelig'.

Til OP:
Brug parameterized query, og sæt param=now.

(Samme gælder for andre databaser).

--
Med venlig hilsen
Stig Johansen

Stig Johansen (05-09-2011)
Kommentar
Fra : Stig Johansen


Dato : 05-09-11 08:28

Stig Johansen wrote:

> Til OP:
> Brug parameterized query, og sæt param=now.
>
> (Samme gælder for andre databaser).

Hov, endnu bedre - byg datoen ind i update statementet, og lad databasen
håndtere det.

--
Med venlig hilsen
Stig Johansen

Rune Jensen (05-09-2011)
Kommentar
Fra : Rune Jensen


Dato : 05-09-11 09:01

On 5 Sep., 00:28, Stig Johansen <wopr...@gmail.com> wrote:
> Stig Johansen wrote:
> > Til OP:
> > Brug parameterized query, og sæt param=now.
>
> > (Samme gælder for andre databaser).
>
> Hov, endnu bedre - byg datoen ind i update statementet, og lad databasen
> håndtere det.

Kan man undgå PQ?


MVH
Rune Jensen

Stig Johansen (06-09-2011)
Kommentar
Fra : Stig Johansen


Dato : 06-09-11 08:35

Rune Jensen wrote:

> Kan man undgå PQ?

Ja, hvis man er ligeglad med SQL-injections.

--
Med venlig hilsen
Stig Johansen

Rune Jensen (12-09-2011)
Kommentar
Fra : Rune Jensen


Dato : 12-09-11 08:51

On 6 Sep., 00:35, Stig Johansen <wopr...@gmail.com> wrote:
> Rune Jensen wrote:
> > Kan man undgå PQ?
>
> Ja, hvis man er ligeglad med SQL-injections.

OK - så misforstod jeg.


MVH
Rune Jensen

Jørn Andersen (05-09-2011)
Kommentar
Fra : Jørn Andersen


Dato : 05-09-11 23:08

On 04 Sep 2011 12:42:04 GMT, Allan Gorm Pedersen <allan@laurbjerg.dk>
wrote:

>Jeg har et script som opdaterer et varekartotek med en
>reserveringsdato, i min MS-access DB.
>
>Problemet opstår hvor datoen er mindre end måneden f.eks.
>04-09-2011(dd-mm-aaaa). Her tilskrives DB til tider 09-04-2011 i
>stedet for. Det underlige er, at det senere samme dato tilskrives
>04-09-2011 (SKØRT!)

Årsagen er, at der er inkonsistens mellem ASP-serverens
sprog-opfattelse og Access-databasens. Og eftersom det ofte er noget,
man ikke selv har kontrol over, så bør man altid sikre sig, at ens
script er "sprog-uafhængigt".

Det folk som regel går fejl af er ikke at skelne mellem dato-*værdien*
og den formatterede værdi (der i realiteten er en streng).

Så vær sikker på, at du tager din dato-*værdi* og indsætter
sprog-uafhængigt i din SQL (se funktionen nederst).
<snip>

>MIT SQL:
>strSQL = "Update varekartotek set "
>strSQL = strSQL & "indkoebsid= '" & strIndkoebsID & "', "
>strSQL = strSQL & "reserveret= '" & DatNu & "' "
>strSQL = strSQL & " Where Id = " & Request.Querystring("id") & ""

Hvis det er Now() du vil indsætte i en Access DB fra ASP, så ville jeg
bare bruge Access' egen indbyggede Now-funktion:

strSQL = strSQL & "reserveret = Now()"
- så er du ude over alle problemer.

Hvis det er andre tider, så brug en funktion, der for mange år siden
blev postet i ASP-gruppen:
<url:
http://groups.google.com/group/dk.edb.internet.webdesign.serverside.asp/msg/a81a0e1a49ca1573>

' -- DateToSql start --
Function DateToSql(Value)
DateToSql = "DateSerial(" & Year(Value) & ", " & _
Month(Value) & ", " & _
Day(Value) & ") + " & _
"TimeSerial(" & Hour(Value) & ", " & _
Minute(Value) & ", " & _
Second(Value) & ")"
End Function
' -- DateToSql slut --

Indsæt den i SQL'en med:
strSQL = strSQL & "reserveret = ' & DateToSql(minDato) & '"
- hvor minDato er en dato-*værdi*.

Funktionen bruger så Access' indbyggede DateSerial- og
TimeSerial-funktioner til at konvertere sproguafhængigt.

Good luck,
Jørn

--
Jørn Andersen
socialister.dk
marxisme.dk

Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407832
Brugere : 218875

Månedens bedste
Årets bedste
Sidste års bedste