Avatar billede krogstrup Nybegynder
01. december 2001 - 11:37 Der er 10 kommentarer og
1 løsning

Problemer med SQL sætning der bruger dato som kriterie

Koden:

<% Set rs = Server.CreateObject(\"ADODB.RecordSet\")
startSQL = \"AND startDato = #\" & dato & \"#\"
strSQL = \"SELECT * FROM sider WHERE(placering = \'right\' AND vis = \'true\' AND arkiv = \'false\' \" & startSQL & \") ORDER BY sortering\"
rs.Open strSQL, strDSN, 1, 1
Do While Not rs.EOF %>

<li class=\"newsLI\"><a href=\"/?mode=nyhed&ID=<%=rs(\"ID\")%>\" target=\"_top\" class=\"newsTeasers\"><%=rs(\"navn\")%></a></li>

<% rs.MoveNext
loop
rs.Close
Set rs = Nothing %>


Tabellen \"sider\" indeholder i alt 4 records der alle opfylder følgende kriterier:
placering = right
vis = true
arkiv = false

dvs at mit sidste kriterie om dato afgør hvor mange af de 4 records der skal vises !

de 3 af førnævnte records har \"startDato\" sat til \"01-12-2001\" og den sidste har \"02-12-2001\"

variablen \"dato\" er sat til \"01-12-2001\"

Når jeg kører ovenstående query får jeg 0 records tilbage - jeg burde vel få 3 !?!

Hvad gør jeg galt ?
Avatar billede krogstrup Nybegynder
01. december 2001 - 11:45 #1
NB: Jeg bruger en access database under dansk windows 2000 pro
Avatar billede krogstrup Nybegynder
01. december 2001 - 11:46 #2
datoformattet i access er sat til kort datoformat
Avatar billede lauer Nybegynder
01. december 2001 - 11:47 #3
har du prøvet at udskrive hele SQL-sætningen først, for at tjekke om de forskellige ting er 100% rigtige?
Avatar billede krogstrup Nybegynder
01. december 2001 - 12:05 #4
JA:

SELECT * FROM sider WHERE(placering = \'right\' AND vis = \'true\' AND arkiv = \'false\' AND startDato = #01-12-2001#) ORDER BY sortering
Avatar billede lauer Nybegynder
01. december 2001 - 12:12 #5
har du prøvet kun at lave en WHERE startDato ...
Avatar billede krogstrup Nybegynder
01. december 2001 - 12:14 #6
Ja:

SELECT * FROM sider WHERE(startDato = #01-12-2001#) ORDER BY sortering

ingen records kommer frem !
Avatar billede lauer Nybegynder
01. december 2001 - 12:20 #7
og du er sikker på at der skal # foran og bagved datoen... (har ikke så meget forstand på ASP, men kender da lidt til SQL)
Avatar billede krogstrup Nybegynder
01. december 2001 - 12:23 #8
Ja - det er jeg temmelig sikker på - det virker desuden heller ikke hvis jeg fjerner dem !
Avatar billede nute Nybegynder
01. december 2001 - 12:50 #9
du mangler mellomrom mellom WHERE og din parantes...

strSQL = \"SELECT * FROM sider WHERE (placering = \'right\' AND vis = \'true\' AND arkiv = \'false\' \" & startSQL & \") ORDER BY sortering\"

/nute
Avatar billede krogstrup Nybegynder
01. december 2001 - 12:52 #10
Det ændrer ikke på noget - min SQL ser nu således ud:

SELECT * FROM sider WHERE (placering = \'right\' AND vis = \'true\' AND arkiv = \'false\' AND startDato = #01-12-2001#) ORDER BY sortering

Men jeg får stadig 0 records....!
Avatar billede krogstrup Nybegynder
01. december 2001 - 13:15 #11
lukker
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester