图片 1

【原创】对文章分类的数据提取

SqlServer中,用exec处理sql字符串中含有变量,提示:必须声明标量变量@
复制代码 代码如下:declare @tssj
nvarchar(100) — 外部变量declare @Sql_Sql nvarchar(100) —
存sql字符串变量 set @Sql_Sql =N’select @tssj=jpk from b where
bzmc=”中国”’EXEC sp_executesql @Sql_Sql,N’@tssj int output’,@tssj
outputselect @tssj

1、发表缘由:

 

N’@tssj int output’,@tssj
output这句是关键,是传入变量参数和传出变量参数!

  做一个类似于博客的文章系统,其中里面有一个文章模块,在后者是用标签来添加分类的新闻的,比如:操作指引(classId=1),活动动态(classId=2),博主文章(classId=3)等等,其中博主文章是博主发布的,操作指引,活动动态等,是在系统管理后台发布的,并且都有一个置顶和前台推荐的的功能,就是在数据库中有个字段标识是否推荐,现在首页要求取某个分类的前n条,其中m(n>m)条是按是否推荐字段(TopNum),剩下的简单的将数据表设计一下,表结构如下:

在 CYQ.Data
分页是内部集成的功能,针对不同的数据库,使用不同的分页形式。

图片 1

 

 

**1:Access   :集成:使用3次Top分页

 

2:MySql    :集成,使用Limit N分页

id为表的索引,o,tiele应该是title,写错了,是标题,内容,分类,推荐值,用户编号,增加时间,在首页的话可以将提取出来的信息显示出来,作为一个引导作用,将用户引导到子页面。又有一个页面对应的分类有20条数据,也是按照这种要求进行提取,所以就需要一个统一的方法对这个表的数据进行提取。

3:Sqlite    :集成,使用Limit N分页

 

4:Sql2000:外置存储过程,使用临时表方式分页

2、思路:

5:Sql2005:外置存储过程,使用ROW_NUMBER方式分页

  有了需求,就得想个办法,由于之前写过一个分页的存储过程,想能不能将这个需求结合分页的存储过程加以整合呢,所以就将上表所需的东西按需求房子一张临时表中,将这个临时表作为分页存储过程的主表,做到完美结合,结合需求,将参数整出来,参数如下:

6:Oracle   :外置存储过程,使用RowNum 方式分页**

@classId nvarchar(10),–文章分类(eg:1,2,3,4..)
@topNum int,–选取topNum=?的置顶条数
@isTopNum
nvarchar(100),–TopNum是置顶的值,TopNum=1(前台推荐),TopNum=2(置顶)…..
@selectTopNum nvarchar(100),–总共获取多少条数

 

@TotalPage int output,–总页数
@RowsCount int output,–总条数
@PageSize int,–每页显示数据
@CurrentPage int–当前分页