Om jag vill kolla det som är i fetstil flera gånger i koden för olika årtal, måste jag då skriva om databas ansl + sett conn mm igen eller finns det ngt annat sätt?
<%
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("news.mdb")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strDSN
[B]response.Write "<b>2005</b>"
sql = "SELECT * FROM tabell1 where datum like '%2005%' order BY ID DESC"[/B]
Set Rs = Conn.Execute (sql)
Do While Not rs.EOF %>
</font><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><br>
<a href="sida1.asp?id=<%=rs("id")%>"><%=rs("p1")%></a>
<% Rs.MoveNext
Loop
Conn.Close
Set Conn = Nothing
%>
Du kan ju lägga in en variabel i stället för att skriva in själva år talet i sql-satsen.
I variabeln lägger du in det årtal du vill kolla, sedan kör du den med conn.execute(SQL).
Använd inte like med kolumner av typen date, det är inte giltigt i standard SQL och fungerar enbart i vissa DBMS. Om det fungerar så blir frågan väldigt ineffektiv eftersom det inte går att utnyttja index. Ange ett slutet intervall i stället.
SELECT <kolumner>
FROM tabell1
where datum between '2005-01-01' and 2005-12-31'
order by id desc
Ännu en förmaning:
ange explicit vilka kolumner du vill hämta istället för *