access分页 技术 思想 a: 程序代码 select top 分页数 * from 表 where 主键 not in (select top 第几页*分页数 主键 from 表 where 过滤条件) access分页 技术 思想 b: 程序代码 select top 页大小 * from 表1 where 主键 (select min(主键) from (select
access分页技术思想a:
程序代码
select top 分页数 * from 表 where 主键 not in (select top 第几页*分页数 主键 from 表 where 过滤条件)
access分页技术思想b:
程序代码
select top 页大小 * from 表1 where 主键
相比这两种设计思想,就大容量的数据而言,譬如一表几万条数据的显示的时候,就能明显的感觉出,前者比后者快了,因为前者不用建立后台临时表处理!,少了一个环节!不过简单的说,还是很容易理解的
打个比方,我一页要五行数据,现在是第三页,那么第几页应该等于需要要的页数乘以记录!
一个基于此思路的分页函数应用:
程序代码
function showclass(page, fcount, order, desc)
if page = or len(page) = 0 then page = 1
skinstr =
pagestr =
skintatol = conn.execute(select count(*) from skin)(0)
filtwheres = order by &order &desc
if page > 1 then
skinsql = select top & fcount skin_id,skin_name,skin_designer,skin_pubdate,skin_designerurl,skin_designermail,skin_geterip,skin_gettime,localskininfopreview,skin_randromnumber,skin_downcouns,skin_fromurl from skin where skin_id not in (select top & ((page -1)* fcount) skin_id from skin &filtwheres) & filtwheres
else
skinsql = select top & fcount skin_id,skin_name,skin_designer,skin_pubdate,skin_designerurl,skin_designermail,skin_geterip,skin_gettime,localskininfopreview,skin_randromnumber,skin_downcouns,skin_fromurl from skin & filtwheres
end if
'------------------ www.knowsky.com 分页栏 ---------------------
total = skintatol '取总数
per = fcount '每页显示条数
pages = total / per '总共的页数
if pages int(pages) then
pages = int(pages) + 1
else
pages = pages
end if
if (page * per) >= total then
bn = total
else
bn = page * per
end if
if pages if page > 5 then
a = page - 4
b = page + 4
if b > pages then b = pages
else
a = 1
b = pages
end if
else
if page > 5 then
a = page - 4
b = page + 4
if b > pages then b = pages
else
a = 1
b = 9
end if
end if
'------------- start --------------------
pagestr = pagestr &
pagestr = pagestr &
for i = a to b
if page = i then
pagestr = pagestr & & i &
else
pagestr = pagestr & & i &
end if
next
pagestr = pagestr & >
pagestr = pagestr &
'------------- end --------------------
set skindb = conn.execute(skinsql)
if skindb.bof or skindb.eof then
skinstr = skinstr & none
else
web_len = 1
skinstr = skinstr &
do while not skindb.eof
if web_len mod 4 = 0 then
bleft =
bright =
elseif web_len mod 4 = 1 then
bleft =
bright =
else
bleft =
bright =
end if
skinstr = skinstr & bleft &
&skindb(skin_name)
& bright
web_len = web_len + 1
skindb.movenext
loop
skinstr = skinstr &
end if
showclass = pagestr & skinstr
end function
%>