Hur modifierar jag min SQL fråga så att man visar bara de 500 första träffarna.
Har testat med count, men får bara felmeddelanden.
strSQL = "SELECT regnr,datum,film,dok,id FROM bil WHERE regnr = '" &strRegnr& "'ORDER BY regnr ASC"
9 svar · 259 visningar · startad av HeHo
Hur modifierar jag min SQL fråga så att man visar bara de 500 första träffarna.
Har testat med count, men får bara felmeddelanden.
strSQL = "SELECT regnr,datum,film,dok,id FROM bil WHERE regnr = '" &strRegnr& "'ORDER BY regnr ASC"
strSQL = "SELECT TOP 500 regnr,datum,film,dok,id FROM bil WHERE regnr = '" &strRegnr& "'ORDER BY regnr ASC"
should do the trick...
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>
Nähä :(
Det funkar ju inte. Jag får inget felmeddelande, men alla träffar listas, så TOP verkar ignoreras.
Varför?
vad använder du för databasmotor?
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>
Databasmotor??? Förstår inte riktigt!! Jag har Access 2000 på en Win 2000 med IIS. Databasen skall senare läggas över på en SQL server.
ok. antar att du använder asp. lägg gärna upp hela den koden här, så får vi kika lite...
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>
Lite nedkortat ser det ut så här!!
<%@ Language=VBScript %>
<%Option Explicit%>
<!--#include file="mallar/connection.asp" -->
<!--#include file="mallar/Root_mall.asp"-->
<!--#include file="mallar/JS_mall.asp"-->
<%
Dim objConnection, objRS, strHTML, strSQL, strRegnr, strFrom, strTom, strDok, strTraff
strRegnr = Trim(Ucase(Request.Form ("regnr")))
strFrom=Trim(Request.Form("from"))
strTom=Trim(Request.Form("tom"))
strDok=Request.Form("dok")
strTraff=Trim(Request.Form("traff"))
'************************************
Public sub SQL()
if not strRegnr="" and strFrom="" and strTom="" and strDok="" then
strSQL = "SELECT TOP " &strTraff& " regnr,datum,film,dok,id FROM bil WHERE regnr = '" &strRegnr& "'ORDER BY regnr ASC"
end if
Call _
Main(strSQL)
End Sub
'************************************
Public Sub Main(SQL)
Set objRS = server.CreateObject ("ADODB.RecordSet")
objRS.Open SQL, objConnection, 3, 2
if objRS.EOF then
strHTML = strHTML & "<DIV ALIGN=LEFT><B>Din sökning gav inget resultat</B></DIV>"
else
strHTML = strHTML & "" &strTraff& "."
strHTML = strHTML & "<DIV ALIGN=LEFT>Din sökning gav följande resultat</DIV><P>"_
& "<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=1 WIDTH='100%'>"_
& "<TR BGCOLOR=#0033cc>"_
& "<TD> <B CLASS=bold>Nr</B></TD>"_
& "<TD> <B CLASS=bold>Registeringsnummer</B></TD>"_
& "<TD> <B CLASS=bold>Datum</B></TD>"_
& "<TD> <B CLASS=bold>Film</B></TD>"_
& "<TD> <B CLASS=bold>Dokument</B></TD>"_
& "<TD ALIGN='center'><B CLASS=bold>Antal</B></TD>"_
& "<TD WIDTH=50><IMG SRC='images/trans.gif'></TD>"_
& "</TR>"
do while not objRS.EOF
intAnt = intAnt + 1
strHTML = strHTML & "<FORM METHOD=post ACTION=shop/add.asp>"_
& "<TR BGCOLOR=#e9f0f2>"_
& "<TD> " &intAnt& "</TD>"_
& "<TD>" &objRS("regnr")& "</TD>" _
& "<TD>" &objRS("datum")& "</TD>"_
& "<TD>" &objRS("film")& "</TD>"_
& "<TD> <A HREF=javascript:oppnaFonster('" &objRS("dok")& "');>" &objRS("dok")& "</A></TD>"_
& "<TD ALIGN=center WIDTH=40><INPUT NAME=Antal SIZE=1 VALUE=1 ALIGN=center></TD>"_
& "<TD WIDTH=50 ALIGN=center><INPUT TYPE=hidden NAME=id VALUE=" &objRS("id")& "><INPUT ID=submit1 BORDER=0 NAME='Placera i korgen' LANGUAGE=javascript onclick=submit1_onclick() SRC='images/kop.gif' NAME=I1 ALT='Placera i korgen' BORDER=0 TYPE=image WIDTH=90 HEIGHT=16 CLASS=submit></TD>"_
& "</TR></FORM>"
objRS.MoveNext
Loop
strHTML = strHTML & "</TABLE>"_
& "<P> </P>"_
& "<A HREF=sok.asp>Ny enkel sökning</A> | <A HREF=av_sok.asp>Ny avancerad sökning</A>"
end if
End sub
'************************************
Call Init()
Call SQL()
Call CleanUP()
%>
'***********CONNECTION.ASP***********
<%
Public Sub Init()
Set objConnection = Server.CreateObject ("ADODB.Connection")
objConnection.Open Application("Connection1_ConnectionString")
End Sub
'************************************
Public Sub CleanUp()
objRS.Close()
set objRS = Nothing
objConnection.Close()
End Sub
%>
[Redigerat av HeHo den 26 mar 2001]
TOP 500 i Access fungerar så att den tar de 500 första + de som är lika (med avseende på de kolumner som ingår i order by tolkar jag det som enligt den något oklara dokumentationen). Det du gör order by på innehåller ju endast ett värde så den fyller ingen funktion. Du kan ju testa att göra
strSQL = "SELECT TOP 500 regnr,datum,film,dok,id FROM bil WHERE regnr = '" &strRegnr& "'ORDER BY id ASC"
------------------
essentitia preter non sans multiplicandum
Kanon! Så enkelt det kan vara för de som kan :)
Jag ändrade Order By till datum istället och då fungerar det ju.
Tack så mycket för hjälpen, LarsG och @nders.
från mitt håll: varsågod! :)
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>