Avatar billede crazykiddo Nybegynder
09. juli 2003 - 14:04 Der er 6 kommentarer

Søge funktion med paging og stored prodecures

Ja men jeg havde et spørgsmål for 1-2 dage siden som jeg fik svar på..men nu er problemet jeg har en søge funktion som kalder en SP (stored prodecure) og viser recordsets.
Og det virker fint..

Men men hvordan får jeg paging på det ?
Da det drejer sig om meget data..ca 500.000 * 30-40 felter
så det skal være den sikreste og hurtigeste måde.

Har en SP med paging men kan ikke få den til at virke med søge relsutat...

her er min SP:

CREATE PROCEDURE dbo.usp_quicksearch
    (
    @firmansearchord varchar(255),
    @Page int,
    @RecsPerPage int
    )
AS

-- We don't want to return the # of rows inserted into our temporary table, so turn NOCOUNT ON
SET NOCOUNT ON

--Create a temporary table
CREATE TABLE #qsearchtemp
(
    id int IDENTITY,
    firmanavn varchar (255),
    firmanavn2 varchar (255),
    adresse varchar (255),
    adresse2 varchar (255),
    city varchar (255),
    postnr varchar (255),
    tlf varchar (255),
    fax varchar (255),
    mobil varchar (255),
    www varchar (255),
    email varchar (255),
    searchord varchar (255),
    klik int,
    branche1 int,
    branche2 int,
    branche3 int,
    branche4 int,
    branche5 int,
    branche6 int,
    branche7 int,
    branche8 int,
    branche9 int,
    branche10 int,
    area1 int,
    area2 int,
    area3 int,
    area4 int,
    area5 int,
    area6 int,
    area7 int,
    area8 int,
    area9 int,
    area10 int,
    vbeskrivelse varchar (255),
    logopic varchar (255),
    solgtaf varchar (255),
    salgsdato varchar (255),
    sidstopdateret varchar (255),
    sidstopdateretaf varchar (255),
    kommentar varchar (255),
    CVR varchar (255),
    SE varchar (255),
    firmatype varchar (255),
    etayear varchar (255),
    addon int,
)

-- Insert the rows from tblItems into the temp. table
INSERT INTO #qsearchtemp (firmanavn, adresse, city, postnr, tlf, fax, mobil, www, email, searchord, klik, branche1, branche2, branche3, branche4, branche5, branche6, branche7, branche8, branche9, branche10, vbeskrivelse, logopic, solgtaf, salgsdato, sidstopdateret, sidstopdateretaf, kommentar, CVR, SE, firmatype, etayear, addon, area1, area2, area3, area4, area5, area6, area7, area8, area9, area10)
SELECT firmanavn, adresse, city, postnr, tlf, fax, mobil, www, email, searchord, klik, branche1, branche2, branche3, branche4, branche5, branche6, branche7, branche8, branche9, branche10, vbeskrivelse, logopic, solgtaf, salgsdato, sidstopdateret, sidstopdateretaf, kommentar, CVR, SE, firmatype, etayear, addon, area1, area2, area3, area4, area5, area6, area7, area8, area9, area10 FROM edb_firmaer WHERE firmanavn LIKE IsNull(@firmansearchord, firmanavn) order by firmanavn desc

-- Find out the first and last record we want
DECLARE @FirstRec int, @LastRec int
SELECT @FirstRec = (@Page - 1) * @RecsPerPage
SELECT @LastRec = (@Page * @RecsPerPage + 1)
--DECLARE @tableOneCount int
--SELECT @tableOneCount = (SELECT COUNT(*) FROM qsearchtemp as recfound)

-- Now, return the set of paged records, plus, an indiciation of we
-- have more records or not!
SELECT *,
      MoreRecords =
    (
    SELECT COUNT(*)
    FROM #qsearchtemp TI
    WHERE TI.ID >= @LastRec
    )
FROM #qsearchtemp
WHERE ID > @FirstRec AND ID < @LastRec


-- Turn NOCOUNT back OFF
SET NOCOUNT OFF
GO

----------------------
og jeg kalder den med:
strSQL = "dbo.usp_quicksearch '" & request.form("firmanavn")&"%'"

objRS.CursorLocation = 3 ' adUseClient
objRS.Open(strSQL), Conn, 1, 3

Help me again please :-)
Avatar billede crazykiddo Nybegynder
09. juli 2003 - 15:03 #1
ups kalder den med :
strSQL = "dbo.usp_quicksearch " & currentPage & "," & iRecordsPerPage & ",'" & request.form("firmanavn")&"%'"
Avatar billede crazykiddo Nybegynder
09. juli 2003 - 17:21 #2
har fundet udaf selve fejlen..men problemet er når man har paging i..og tager næste side..så køre den jo SPen igen..og så er input feltet jo tomt og så viser den alle records.
Hvordan skal jeg klare det ?
Avatar billede hossein Nybegynder
10. juli 2003 - 22:55 #3
Du finder noget spændende her med store procedure + andre eksampler
Avatar billede bootlab Nybegynder
11. juli 2003 - 13:51 #4
If @Page <> 0 Then
Else
'læg din SP ind her..
End If

/boot
Avatar billede crazykiddo Nybegynder
14. juli 2003 - 10:33 #5
hmmm jow men spen laver jo en temp tabel..og så er det vel meningen at når den er lavet og man tager side 2 at den ikke skal lave den igen men bare selecte side whatever fra temp tablen.

Men jeg er osse kommet i tvivl nu om hvilken metode jeg skal bruge... om jeg skal bruge sp med temp table eller array med session eller simple sp eller hvordan.

Da det drejer sig om en stor side med 600.000 rows * 50 columns ca. og der nok er 5-10.000 besøgende om dagen ca. så søge funktionen skal være så hurtig som muligt.
Avatar billede crazykiddo Nybegynder
15. juli 2003 - 13:20 #6
Okay men det store problemet er selve pagingen... med SP eller ej..hvordan skal den laves..
nogle som har et lille eks ? da alt jeg har prøvet ikke funker rigtig..
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
Kurser inden for grundlæggende programmering

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