Gå til innhold

Anbefalte innlegg

Hei!

 

Holder på med en søkefunksjon med flere tusen poster i databasen. Dersom søket er et generelt treff kan jeg risikere å skrive ut 8-10.000 poster i en bla-funksjon (som tar laaang tid).

 

Jeg vet at man kan skrive ut f.eks. topp 50 fra databasen, men da får jeg ikke vite hvor mange treff som egentlig finnes.

 

Ønsker en utskrift som f.eks viser:

Søket gav 5.000 treff. Viser treff 1-200...

 

Kan selvsagt lage 2 SQL-spørringer, både for totallantallet og utskriften, men dette føles noe tungvint.

 

Noen stalltips?

 

mvh. Vetle :)

Lenke til kommentar
Videoannonse
Annonse

snakker du om ren sql her, eller skal dataene "vidreforedles" i et annet språk?

 

I sql kan du nøste select hvor du velger alle i den innerste og bestemmer hvilke av de alle i den ytterste. Litt for tidlig for meg å gi korrekt kode her og nå, men håper du skjønner poenget

Lenke til kommentar
snakker du om ren sql her, eller skal dataene "vidreforedles" i et annet språk?

 

I sql kan du nøste select hvor du velger alle i den innerste og bestemmer hvilke av de alle i den ytterste. Litt for tidlig for meg å gi korrekt kode her og nå, men håper du skjønner poenget

 

Hei

 

Takker for hjelpen så langt:-)

 

Bruker en Stored Procedure som jeg skriver ut på nettsiden

i ASP.

 

CREATE PROCEDURE DBO.SP_Sokemotortest

@navn varchar(60),

@beskrivelse varchar(350)

AS

SELECT navn, beskrivelse

FROM Innhold

WHERE (Navn LIKE @navn) OR (beskrivelse LIKE @beskrivelse)

GO

 

... Som jeg skriver ut i ASP på følgende måte (kun et eksempel)

 

<%

Set rs = Server.Createobject("ADODB.Recordset")

SQL = "EXECUTE SP_Sokemotortest @navn = '%" & "kultur" & "%', @beskrivelse = '%" & "film" & "%' "

rs.Open SQL, read, 3, 1

 

If Not (rs.BOF Or rs.EOF) Then

 

response.write "Søket gav " & rs.RecordCount & " treff.<br><br>"

 

DO WHILE NOT rs.EOF

response.write rs("navn") & "<br>" & rs("beskrivelse") & "<br>"

rs.MoveNext

LOOP

 

End If

 

rs.Close

Set rs = nothing

%>

 

Her skriver jeg ut alle postene som inneholder ordet "kultur eller "film".

 

Noen forslag til hvordan jeg skal lage en Stored Procedure som kun

skriver ut x-antall poster (f.eks. 50), men som også har en verdi for totalantallet?

 

Håper noen skjønte dette :-)

 

mvh. Vetle

Lenke til kommentar

Sånn jeg har forstått det så vil du skrive ut 50 og 50 poster, og angi at dette er postene 150-200 av 12000. Er jeg helt på bærtur her? Det at du bruker aps betyr vel at oversikten over hvilke poster du har sett på må ligge på databasen... Kan egentlig ikke asp :)

Lenke til kommentar
  • 2 uker senere...

Selve SQL spørringene er vel så og si like. Men det er koding som er forskjellig.

 

1. Jeg ville kjørt en sql spørring, og så limitert denne til 0-50 posts.

2. Så en Sql spørring om hvor mange det finnes.

 

Så en sql spørring, lik som 1., bare at den viser 51-100.

 

Tror det skal gå ann, lenge sidne jeg holdt på med sql

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...