Danmark vil mindske afhængigheden af globale techgiganter, men det kræver mere end politiske formuleringer og strategier, understreger PROSA’s formand Niels Bertelsen.
SQL = "SELECT count(*) as log_post13 FROM nytabel2006_statastik_log_unikke WHERE dato=#"& FormatDateTime(Now(), 2) &"# AND ip='"& Request.ServerVariables("REMOTE_ADDR") &"'"
Det sidste virker ikke... Men hvis jeg nu anser at jeg vil have "dato" som der skal være lig Date() til at være i samme format hvis der f.eks. kommer en værdi nu fra "dato" hvor der står 10-03-06 16:30
Men den kommer bare med en værdi på nul, fordi det ikke er samme format tror jeg...! Jeg regner med at "FormatDateTime(Now(), 2)" levere i et format som således...: "10-03-06".... Og det er også sådan det skal være men i min database har jeg i et andet script brug for at jeg både dato og tid, som således: "10-03-06 16:30" hvor jeg kun i dette script vil have lavet det om til "10-03-06"... Og det troede jeg kunne gøre ved at skrive således...:
SQL = "SELECT count(*) as log_post13 FROM nytabel2006_statastik_log_unikke WHERE FormatDateTime(dato, 2)=#"& FormatDateTime(Now(), 2) &"# AND ip='"& Request.ServerVariables("REMOTE_ADDR") &"'"
I Access findes der en mere kraftfuld funktion til at formatere strenge, datoer og tal, den hedder Format og den tager et mønster og selve datoen. jeg kan ikke huske helt præcis hvordan det er med parametre til funktioner i Access, men jeg tror det er noget i stil med:
SQL = "SELECT count(*) as log_post13 FROM nytabel2006_statastik_log_unikke WHERE Format(dato; "dd-mm-yy hh:nn")=#"& FormatDateTime(Now(), 2) &"# AND ip='"& Request.ServerVariables("REMOTE_ADDR") &"'"
Hvis det ikke fungerer med ; så prøv med komma (jeg mener dog det er semikolon).
Rent bort set fra det, så burde et datofelt være ligeglad med om formatet er 10-03-06 eller 10-03-2006, sålænge datatypen du sammenligner med er dato (f.eks. en konstant omstillet af #).
Jeg kan ikke huske om vi har snakket om dette i en af de tidligere tråde, men har du sat session.LCID = 1030? Det skulle i det mindste sikre at datoformater er danske.
SQL = "SELECT count(*) as log_post FROM nytabel2006_statastik_log WHERE Format(dato, "dd-mm-yy")=#"& FormatDateTime(Now(), 2) &"# AND ip='"& Request.ServerVariables("REMOTE_ADDR") &"'" --------------------------------------------------------------------------------------^
<% Session.LCID=1030 %> og Function CheckNumber(intTal) If intTal < 10 Then CheckNumber = "0"&intTal Else CheckNumber = intTal End If End Function (CheckNumber(Day(Now()))&"-"&CheckNumber(Month(Now()))&"-"&Year(Now())&" "&CheckNumber(Hour(Now()))&":"&CheckNumber(Minute(Now())))
Sorry (det er muligvis tidspunktet der gør mine tanker slørede), men det er pga. strengen i format kommer i konflikt med strengen som SQL-sætningen ligger i. Prøv denne i stedet:
SQL = "SELECT count(*) as log_post FROM nytabel2006_statastik_log WHERE Format(dato; ""dd-mm-yy"")=#"& FormatDateTime(Now(), 2) &"# AND ip='"& Request.ServerVariables("REMOTE_ADDR") &"'"
Jeg kan ikke lige se hvad der er galt, med de informationer du har givet mig indtil videre (altså bort set fra at vi nok skal droppe den der strategi med formatering af datoen i databasen)...
Hvis vi lige går helt tilbage til den der fungerede, nemlig:
SQL = "SELECT count(*) as log_post13 FROM nytabel2006_statastik_log_unikke WHERE dato=#"& FormatDateTime(Now(), 2) &"# AND ip='"& Request.ServerVariables("REMOTE_ADDR") &"'"
og så prøver at fjerne IP-kriteriet, så du prøver at fyre denne SQL af mod databasen:
SQL = "SELECT count(*) as log_post13 FROM nytabel2006_statastik_log_unikke WHERE dato=#"& FormatDateTime(Now(), 2) &"#"
bare for at se om der kommer et resultat ud af det.
men hvis datoerne i databasen er 3/11 i stedet for 11/3, så giver det vel også god mening...? Er der nogen måde hvorpå du kan teste om der rent faktisk er et datagrundlag der skulle give dig et andet resultat end 0 i den forspørgsel...?
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
på denne linie: SQL = "SELECT count(*) as log_post FROM nytabel2006_statastik_log WHERE Format(dato, ""dd-mm-yy"")=#"& FormatDateTime(Now(), 2) &"# AND ip='"& Request.ServerVariables("REMOTE_ADDR") &"'"
Jeg kan ikke lige se hvad der er galt - desværre. Det er svært ud fra de informationer du har givet mig, at udlede noget. Sidste gang hjalp det på mirakuløs vis med en genstart af serveren... jeg har en mistanke om at vi sidder og jagter spøgelser, altså sideeffekter af noget andet. Jeg kan bare ikke sætte fingeren på hvad det er :(
Prøv i øvrigt at udskrive SQL-sætningen (den oprindelige med variabel dato) inden du udfører den, så du kan se hvordan den ser ud. Det er ofte lettere at se hvad problemet er, når man ser selve SQL-sætningen.
Mht. genstart, ok, måske ikke ligefrem frivillig genstart, men kunne da tyde på at der skete et eller andet med den server, som fik det til at fungere igen... ref: http://www.eksperten.dk/spm/691172#rid6128405
Kan den stadig finde nogle poster hvis du propper IP-kriteriet på sin SQL?
SQL = "SELECT count(*) as log_post13 FROM nytabel2006_statastik_log_unikke WHERE dato BETWEEN #11-03-2006# AND #11-03-2006 06:00# AND ip='"& Request.ServerVariables("REMOTE_ADDR") &"'"
SQL = "SELECT count(*) as log_post FROM nytabel2006_statastik_log WHERE Format(dato; 'dd-mm-yy hh_nn')=#"& FormatDateTime(Now(), 2) &"# AND ip='"& Request.ServerVariables("REMOTE_ADDR") &"'"
Prøv lige denne i stedet (den anden havde en lille skrivefejl):
SQL = "SELECT count(*) as log_post FROM nytabel2006_statastik_log WHERE Format(dato; 'dd-mm-yy hh:nn')=#"& FormatDateTime(Now(), 2) &"# AND ip='"& Request.ServerVariables("REMOTE_ADDR") &"'"
Men forstår jeg rigtigt hvis at dette: Format(dato, 'dd-mm-yy hh:nn') svare til f.eks. 11-03-06 02:40 - så er det da klart den ikke virker når den skal være lig 11-03-06 ???
og med denne SQL, Virker den... SQL = "SELECT count(*) as log_post FROM nytabel2006_statastik_log WHERE Format(dato, 'mm-dd-yyyy')=#"& FormatDateTime(Now(), 2) &"# AND ip='"& Request.ServerVariables("REMOTE_ADDR") &"'"
Men hvorfor er det lige at: 'mm-dd-yyyy' - finder det danske format? 'dd-mm-yyyy' - finder det enelske format?
Det er lidt farligt at være kategorisk, men ifht. VBScript og databaser (MSSQL, Access, MySQL og givetvis flere andre), kan du kun bruge den ifm. SQL imod Access-databaser. Jeg giver dog inden garanti, men det er, såvidt jeg ved, noget der er implementeret i Access, fordi Access også benytter VBA som scriptintegrationssprog (VBA er et subset af applikationsprogrammeringssproget VB hvor mange flere funktionalitet er tilgængelig)...
Hvorfor får jeg lige pluslig denne fejl... uden at have ændret noget...!
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect.
Bare glem det...! Det var bare et "," der havde sneeet sig ind i SQL-sætnignen
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.