11. december 2002 - 17:38Der er
11 kommentarer og 1 løsning
Dato Problem..... HASTER
Hejsa
Jeg har et mærkværdigt dato-problem i den forespørgels i en access database. Jeg skriver lige den vigtige del af koden (siden hedder for øvrigt default.asp) og så forklarer problemet:
<% dato = request.querystring("dato") ConnString = "DSN=projekt" Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open ConnString Set Rs = Conn.Execute("SELECT * From bil where dato = #"&dato&"# ")
if rs.eof then
Her køres så en masse kode som i bund og grund blot opretter en masse nye felter i en tabel
rdir = "default.asp?dato=" & dato response.Redirect(rdir) %>
Det er så meningen at efter felterne i tabellen er oprettet så sendes brugeren tilbage til samme side med samme dato som blev givet første gang, hvorefter datoen gerne skulle være oprettet i tabellen og skridtet med den oprettelse derfor skulle blive sprunget over.
Desværre så sker det men nogle datoer at den kører oprettelsen igen i et uendeligt loop. Eksempelvis har den et problem med datoer 01-12-2002 til og med 11-12-2002 og med 01-02-2003 til 11-02-2003. Hvor den fint kan klare andre datoer i de 2 måneder. Der er da heller ikke problemer med de samme "lave" datoer i Januar 2003.
Jeg har ingen anelse om hvad det kan skyldes og da jeg er lidt i tidsnød er der da også masser af point at komme efter for et svar jeg kan bruge til noget.
Det er nok fordi din Locale Setting er forkert - dvs. at din Access-database ikke er samme sprog som dit styresystem (eller din ASP-applikation). Det vil så sige, at du ikke kan regne med hvordan dine datoer bliver gemt - og at det er derfor du har problemer med netop disse dato-intervaller. Så længe din dato hedder f.eks. 19/12-02, er der ikke noget at gå fejl af, men hvis det f.eks. er 10/11-02, vil en engelsk-"talende" database gå ud fra at det er en amerikansk dato, altså at det er den 11. oktober...
Prøv at se om du ikke UDELUKKENDE kan smide rundt med engelske datoer...
Ja det glemte jeg så måske at sige..... jeg har dobbeltjekket at de kører samme sprog. De kører samme sprog begge 2, og dato formatet ser ud som jeg skrev det, altså dd-mm-åååå
Skal måske også siges at jeg tester det på min egen maskine med IIS, så hvis det evt kan skyldes en indstilling der så lytter jeg meget gerne til det også. Må desværre indrømme at mit kendskab til lige netop til kunne være bedre.
--> eagleeye: det holder ikke. For at alting skal fungere, skal man så vidt muligt holde datoer som objekter, og ikke som strenge. Eller holde den i et internationalt format (yyyy.mm.dd).
--> midas_dk: Det er SQL og dermed er alt en streng.. I ASP koden når man arbejder/udkriver datoer... så ja så skal man lade ASP fortolkeren holde styr på datoen.. Nu er det så via SQL og SQL bruger yyyy-mm-dd eller mm-dd-yyyy som standart dato format.
--> ducks: Dansk format er 1030. Og nej det hjælper ikke på at SQL bruger US/UK som dato format.
--> eagleeye: Du har lidt ret - men ved du for eksempel altid, at det rent faktisk ER måneden, der hentes ud hvis du bruger Month(str)? Det tror jeg ikke... Men okay, hvis det virker hér, er det vel godt nok!
Bygones...
Synes godt om
Ny brugerNybegynder
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.