/*
Name: spall_deletenoneunique
Input: Table Name and field list to be queried
Output:
Call:
Note: pagination of tens of millions of data records is achieved! -- You can get 14.48 million records on the 1,200th pages of 100 records within 5 seconds?
Author: Tie Quan
Email:
Website: http://www.wellknow.net
Update: 20040610
Support: http://bbs.wellknow.net
Copyright: Source: wellknow.net, which uses thinking to create the future
*/
Create procedure getrecordfrompage
@ Tblname varchar (255), -- table name
@ Fldname varchar (255), -- field name
@ Pagesize Int = 10, -- page size
@ Pageindex Int = 1, -- page number
@ Iscount bit = 0, -- returns the total number of records. If the value is not 0, the system returns
@ Ordertype bit = 0, -- set the sorting type. If the value is not 0, the sorting type is descending.
@ Strwhere varchar (1000) = ''-- Query condition (Note: Do not add where)
As
Declare @ strsql varchar (6000) -- subject sentence
Declare @ strtmp varchar (100) -- Temporary Variable
Declare @ strorder varchar (400) -- sort type
If @ ordertype! = 0
Begin
Set @ strtmp = "<(select Min"
Set @ strorder = "order by [" + @ fldname + "] DESC"
End
Else
Begin
Set @ strtmp = "> (select Max"
Set @ strorder = "order by [" + @ fldname + "] ASC"
End
Set @ strsql = "select top" + STR (@ pagesize) + "* from ["
+ @ Tblname + "] Where [" + @ fldname + "]" + @ strtmp + "(["
+ @ Fldname + "]) from (select top" + STR (@ PageIndex-1) * @ pagesize) + "["
+ @ Fldname + "] from [" + @ tblname + "]" + @ strorder + ") as tbltmp )"
+ @ Strorder
If @ strwhere! =''
Set @ strsql = "select top" + STR (@ pagesize) + "* from ["
+ @ Tblname + "] Where [" + @ fldname + "]" + @ strtmp + "(["
+ @ Fldname + "]) from (select top" + STR (@ PageIndex-1) * @ pagesize) + "["
+ @ Fldname + "] from [" + @ tblname + "] Where" + @ strwhere + ""
+ @ Strorder + ") as tbltmp) and" + @ strwhere + "" + @ strorder
If @ pageindex = 1
Begin
Set @ strtmp =''
If @ strwhere! =''
Set @ strtmp = "where" + @ strwhere
Set @ strsql = "select top" + STR (@ pagesize) + "* from ["
+ @ Tblname + "]" + @ strtmp + "" + @ strorder
End
If @ iscount! = 0
Set @ strsql = "select count (*) as total from [" + @ tblname + "]"
Exec (@ strsql)
Go