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 ?
Annonceindlæg fra SuperOffice
01. december 2001 - 11:45
#1
NB: Jeg bruger en access database under dansk windows 2000 pro
01. december 2001 - 11:46
#2
datoformattet i access er sat til kort datoformat
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?
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
01. december 2001 - 12:12
#5
har du prøvet kun at lave en WHERE startDato ...
01. december 2001 - 12:14
#6
Ja: SELECT * FROM sider WHERE(startDato = #01-12-2001#) ORDER BY sortering ingen records kommer frem !
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)
01. december 2001 - 12:23
#8
Ja - det er jeg temmelig sikker på - det virker desuden heller ikke hvis jeg fjerner dem !
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
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....!
01. december 2001 - 13:15
#11
lukker
Kurser inden for grundlæggende programmering