webForumDet fria alternativet

Visa första 500 träffarna

9 svar · 259 visningar · startad av HeHo

HeHoMedlem sedan apr. 2000277 inlägg
#1

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"
@ndersMedlem sedan juni 200032 969 inlägg
#2
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>

HeHoMedlem sedan apr. 2000277 inlägg
#3

Nähä :(
Det funkar ju inte. Jag får inget felmeddelande, men alla träffar listas, så TOP verkar ignoreras.
Varför?

@ndersMedlem sedan juni 200032 969 inlägg
#4

vad använder du för databasmotor?

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>

HeHoMedlem sedan apr. 2000277 inlägg
#5

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.

@ndersMedlem sedan juni 200032 969 inlägg
#6

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>

HeHoMedlem sedan apr. 2000277 inlägg
#7

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> &#0124; <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]

LarsGMedlem sedan dec. 200012 464 inlägg
#8

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

HeHoMedlem sedan apr. 2000277 inlägg
#9

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.

@ndersMedlem sedan juni 200032 969 inlägg
#10

från mitt håll: varsågod! :)

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>

129 ms totalt · 3 externa anrop · v20260731065814-full.cf67ef55
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)