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 :-)