会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
.NET技术支持者
博客园
::
首页
::
博问
::
闪存
:: ::
联系
::
订阅
::
管理
::
公告
实现上千万条数据的分页显示!
--
获取指定页的数据
CREATE
PROCEDURE
GetRecordFromPage
@tblName
varchar
(
255
),
--
表名
@fldName
varchar
(
255
),
--
字段名
@PageSize
int
=
10
,
--
页尺寸
@PageIndex
int
=
1
,
--
页码
@IsCount
bit
=
0
,
--
返回记录总数, 非 0 值则返回
@OrderType
bit
=
0
,
--
设置排序类型, 非 0 值则降序
@strWhere
varchar
(
1000
)
=
''
--
查询条件 (注意: 不要加 where)
AS
declare
@strSQL
varchar
(
6000
)
--
主语句
declare
@strTmp
varchar
(
100
)
--
临时变量
declare
@strOrder
varchar
(
400
)
--
排序类型
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
posted on
2005-10-24 12:23
LDAR泄漏检测与修复
阅读(
2516
) 评论(
1
)
收藏
举报
刷新页面
返回顶部