Avatar billede yanuuz Nybegynder
12. marts 2001 - 12:27 Der er 10 kommentarer og
1 løsning

Begrænsning af antal poster ved søgning?

Mit spørgsmål er om der er en kommando som begrænser antallet af poster som hentes fra en database.
Problemet er at i en stor database vil søgetiden være for lang hvis søgekriteriet passer på alle poster f.eks.

Derfor skal begrænsningen også ligge i forespørgslen og ikke i udskrivningen af posterne.

Nogen som kan? yanuuz
Avatar billede sesam Nybegynder
12. marts 2001 - 12:30 #1
Hvad med: count = 10 skriver de ti første
Avatar billede moykal Nybegynder
12. marts 2001 - 12:43 #2
Det keyword du leder efter hedder \"TOP\". Anvend det ifm. din select:

SELECT TOP 100 from MyTable
Avatar billede yanuuz Nybegynder
12. marts 2001 - 12:47 #3
Det lyder som en simpel løsning. Dog har jeg lidt problemer med strengen.
Jeg går ud fra at du ville sætte COUNT lige efter SELECT i en query?
Altså: \"res=ConnNavn.execute (\"SELECT COUNT=10 kolonne1, kolonne2, kolonne3 FROM DB_Navn WHERE instr(...\" osv. ?
Eller?
Avatar billede yanuuz Nybegynder
12. marts 2001 - 12:50 #4
Det var smukt..
Og så virker det sku\'

Tak for hjælpen!
yanuuz
Avatar billede moykal Nybegynder
12. marts 2001 - 12:52 #5
Nej for pokker. Jeg vil bare erstatte \"COUNT=10\" med \"TOP 10\". Det andet virker da ikke. Så vidt jeg kan se i dokumentationen fortæller COUNT hvor mange rows du fik tilbage. Jeg troede at du gerne selv ville bestemme dette.
Avatar billede moykal Nybegynder
12. marts 2001 - 12:53 #6
Hvad virker? Virker \"COUNT=\"? Jeg håber da det er TOP, der virker.
Avatar billede yanuuz Nybegynder
12. marts 2001 - 12:56 #7
altså TOP kommandoen - tak moykal..
Avatar billede yanuuz Nybegynder
12. marts 2001 - 12:59 #8
Ja ja, udtrykte mig ikke klart. Men så lige et tillægsspørgsmål:
Kan jeg så skrive en besked om at der var flere poster fundne end dem jeg skrev ud? (så folk ved at de skal begrænse deres søgning...
Hmmm?
Avatar billede yanuuz Nybegynder
12. marts 2001 - 13:00 #9
Eller bliver det bare en standard besked man må skrive?
Avatar billede moykal Nybegynder
12. marts 2001 - 14:06 #10
Du kan vel anvende en select count til at checke hvor mange der egentligt er:

// Hvor mange er der?
select count(*) .... det select statement der skal fyres af uden en \"TOP\" clause
// Hvor mange fik jeg?
select count(*) .... med en \"TOP\"
Avatar billede yanuuz Nybegynder
12. marts 2001 - 15:34 #11
Kan ikke få det til at virke.
Har også prøvet med RecordCount... returnerer værdien -1 hvilket ifølge de kloge skulle betyde at den ikke kan finde ud sf hvor mange poster RecordSet\'et indeholder... (hvorfor?)
Men COUNT(*) kan jeg ikke få til at virke. Sørgeligt! Prøver igen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester