CREATE PROCEDURE Pages
@TableNames VARCHAR(200), --表名,可以是多个表,但不能用别名
@PrimaryKey VARCHAR(100), --主键,可以为空,但@Order为空时该值不能为空
@Fields VARCHAR(800), --要取出的字段,可以是多个表的字段,可以为空,为空表示select *
@PageSize INT, --每页记录数
@CurrentPage INT, --当前页,0表示第1页
@Filter VARCHAR(200) = '', --条件,可以为空,不用填 where
@Order VARCHAR(200) = '' --排序,可以为空,为空默认按主键升序排列,不用填 order by
AS
BEGIN
declare @topRow varchar(12)
declare @tempPageSize varchar(12)
if(len(@Order)>0)
begin
set @Order=' order by '+@Order
end
else
begin
set @Order=''
end
if (len(@Filter)<1)
begin
set @Filter=' 1=1'
end
if(@CurrentPage-1<=0)
set @CurrentPage=0
set @topRow= rtrim(ltrim(str(@PageSize*(@CurrentPage-1))))
set @tempPageSize= rtrim(ltrim(str(@PageSize)))
exec('
declare @temptable table(rownum int identity(1,1),Gid varchar(12))'+'
declare @datatable table(Gid varchar(12))'+'
DECLARE @Timer datetime'+'
SET @Timer = getdate() '+'
SET NOCOUNT ON '+'
insert into @temptable(Gid) select '+@PrimaryKey+' from '+@TableNames+' where '+@Filter+@Order+'
insert into @datatable(Gid) select top '+@tempPageSize+'Gid from @temptable where rownum>'+@topRow+'
set rowcount '+@tempPageSize+'
select '+@Fields+' from '+@TableNames+' where '+@Filter+' and '+@PrimaryKey+' in (select Gid from @datatable)'+@Order+'
set rowcount 0'+'
print(DATEDIFF(millisecond, @Timer, getdate()))')
print('insert into @temptable(Gid) select '+@PrimaryKey+' from '+@TableNames+' where '+@Filter+@Order)
print('select '+@Fields+' from '+@TableNames+' where '+@Filter+' and '+@PrimaryKey+' in(select Gid from @datatable) '+@Order)
end
GO
分享到:
相关推荐
以下是从给定代码片段中提取的实现步骤,该片段展示了如何使用Ajax进行分页处理: 1. **初始化参数**: - `pageSize`定义了每页显示的记录数量。 - `Msg`变量用于存储可能的错误或消息。 2. **处理页面加载事件*...
综上所述,这个C++ ADO类库是一个强大的工具,它简化了在C++应用程序中与数据库交互的过程,特别是处理BLOB数据时,提供了插入、读取、转换、查询和分页等功能,广泛适用于工业视觉等需要高效数据库操作的领域。...
本信息管理程序利用这些技术实现了数据分页功能,为用户提供了一种高效的数据浏览体验。下面我们将深入探讨这些知识点。 首先,JSP是一种动态网页技术,它允许开发者在HTML页面中嵌入Java代码,实现服务器端的业务...
例如,用户提交留言后,C#代码会捕获这些请求,验证数据的有效性,然后将数据存储到Access数据库中。 Access是微软的一款关系型数据库管理系统,虽然在大型企业级应用中可能不是首选,但因其轻量级、易于使用和良好...
在本项目中,MyBatis的代码生成器自动生成了操作数据库的基础代码,包括增删改查(CRUD)和分页查询等常见操作,极大地提高了开发效率。开发人员只需配置好Mapper XML文件中的SQL语句,就可以便捷地执行数据库操作,...
1. **手写代码绑定**:通过设置控件的DataSource属性为数据源,然后调用DataBind()方法完成绑定。 2. **数据源控件绑定**:直接通过DataSourceID属性指定数据源控件的ID。 3. **数据源与其他非数据绑定控件**:通过...
"master.zip"则是项目源代码的压缩包,解压后应包含项目的所有Java源码、配置文件、依赖库等,开发者可以通过阅读和修改这些代码来学习Spring Boot和BitisisPlus的使用,以及如何构建一个社团管理后台系统。...
3. **强大的对象模型**:它提供了丰富的对象模型,包括Oracle数据库对象(如表、视图、存储过程等)的完整映射,使开发者能够方便地操作数据库结构。 4. **高级数据绑定**:与.NET控件的深度集成,允许开发者轻松...
纯手写的getsql意味着这个模块的查询逻辑是独立编写的,没有依赖phpcms原有的SQL处理方式,这提高了代码的可读性和可维护性。 在实现phpcms时间轴时,开发者可能采取了以下关键步骤和知识点: 1. **数据库设计**:...
Mybatis-Plus是Mybatis的扩展框架,它简化了Mybatis的使用,提供了包括单表操作、CRUD、关联查询、分页、条件构造等在内的诸多功能。在本项目中,Mybatis-Plus作为数据访问层,帮助开发者快速处理数据库操作,减少了...
3. **MyBatis**:MyBatis是一个持久层框架,它允许开发者编写SQL语句并将其与Java对象映射,减少了手写JDBC代码的工作量,同时保持了SQL的灵活性。 4. **SpringBoot**:SpringBoot是Spring的扩展,旨在简化Spring...
系统通过JDBC接口与MySQL进行交互,MybatisPlus则在此基础上提供了一套简洁的ORM(对象关系映射)解决方案,简化了对数据库的操作,如增删改查、分页查询等,同时支持动态SQL,提高了开发效率。 系统的主要功能模块...
7. **手写代码:二叉树的镜像**:可以使用递归或层次遍历来实现二叉树的镜像操作,即交换左右子树。 8. **虚拟内存作用**:虚拟内存为每个进程提供独立的内存空间,防止地址冲突,同时通过分页或分段机制实现内存...
这个项目的核心目标是提供一个高效、用户友好的界面,以便于库存控制、采购、领用、退库等操作。下面我们将深入探讨该项目中涉及的关键技术和知识点。 1. **Java后端开发**: - **Servlet与JSP**:作为JavaWeb的...