Hejsan! Hej! Jo, men vill bara ha ut de 5 poster som jag plockar i SQL-uttrycket. Kan det vara så att det inte fungerar med den versionen av acess du kör. Top 5 i access fungerar så att man även får med de poster som har samma värde som de som är med i top 5. Så om alla poster har samma datum så har top ingen betydelse. Du kan ju testa att sortera på linkID:SELECT TOP... funkar inte?
Kan någon svara på vad det är för fel på följande kod?
----------------------------------------------------------------------------------------------------------------------------------------
<%
Set Conn = Server.CreateObject("adodb.connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};" & "Dbq=d:\inetpub\wwwroot\links\db\links.mdb;" & "Uid=Admin;" & "Pwd=;"
strSQL="SELECT TOP 5 * FROM tbl_lankar ORDER BY datum DESC"
set RS=Conn.Execute(strSQL)
%>
<%Do Until RS.EOF OR RS.BOF%>
" target="_blank"><%=RS("url")%><br>
<%
RS.MoveNext
Loop
%>
<%
Conn.Close
Set Conn=nothing
%>
----------------------------------------------------------------------------------------------------------------------------------------
Inga problem med listningen men ALLA poster visas?
Har det att göra med min loopning kanske?
Tack på förhand!
/..Ronnie FaltinSv: SELECT TOP... funkar inte?
Ja? Alla poster visas ja... Och det har med din loop att göra. Vill du ha någon begräsning på hur många som ska visas?
Lev väl,
Tom S.Sv: SELECT TOP... funkar inte?
Som det är nu så listar den alla poster i tabellen. Jag antar att det
är jag som tänker lite fel när det gäller detta? Jag vet inte riktigt
hur det fungerar när jag begär X antal poster i en SQL-sats och
sedan loopar till EOF eller BOF. Om jag visar posterna enligt den
principen så trodde jag iaf att man bara listar de X antal poster som
man hade begärt? "Do Until RS......" är kanske inte grejen i det här
fallet? Har letat info från andra ställen, men har bara hittat info om
"paging" och det känns lite väl overkill för en sådan grej.
Jag funderade också på om man kanske skulle försöka använda
en variabel som blir variabel = (variabel + 1) varje gång den loopas
och sedan hoppa ur loopen när variabeln > 3? Det är ju en logisk
och förhållandevis enkel lösning?
Jag hade tänkt mig en funktion som tillåter besökare att skicka upp
sina egna länkar via ett formulär. Sedan visas de 3 senast inskickade
länkarna på förstasidan.
MVH
/..EyeScreamSv: SELECT TOP... funkar inte?
Funkar t.ex. inte på äldre versioner av MS SQL-server.Sv: SELECT TOP... funkar inte?
Har du en räknare som du kan använda istället?Sv: SELECT TOP... funkar inte?
<code>
<%
Set Conn = Server.CreateObject("adodb.connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=d:\inetpub\wwwroot\links\db\links.mdb;" & _
"Persist Security Info=False"
strSQL="SELECT TOP 3 * FROM tbl_lankar ORDER BY linkID DESC"
set RS=Conn.Execute(strSQL)
Do Until RS.EOF
%>
" target="_blank"><%=RS("url")%><br>
<%
RS.MoveNext
Loop
RS.Close
Set RS = nothing
Conn.Close
Set Conn=nothing
%>
</code>
Eller:
strSQL="SELECT TOP 3 * FROM tbl_lankar ORDER BY Datum DESC, linkID DESC"