SQL.PRO_PageForIdTable


/****** Object:  StoredProcedure [dbo].[PRO_PageForIdTable]    Script Date: 04/29/2014 11:23:21 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author: [email protected]
-- Create date: 2013-04-03
-- Description:
-- =============================================
CREATE proc [dbo].[PRO_PageForIdTable]
(
@TableName NVARCHAR(50), --要查询的表名称,单表名称
@FieldsName NVARCHAR(1024), --要返回的列名称 :*
@IdName NVARCHAR(50), --标识列名称 能够唯一标识数据:ID
@StrWhere NVARCHAR(max), --要求带WHERE关键字:where addtime>‘2012‘
@OrderASC bit, --是否升序,0:DESC,1:ASC 要求和
@Page INT, --页码从1开始
@PageSize INT, --
@TotalRow INT output -- 记录总数
)
as
BEGIN
SET NOCOUNT ON;
DECLARE @sqlOrder AS NVARCHAR(512);
DECLARE @sql AS NVARCHAR(MAX);
if(@OrderASC=0)
set @sqlOrder=‘order by ‘+@IdName+‘ desc‘;
else
set @sqlOrder=‘order by ‘+@IdName+‘ asc‘;

begin
if(@Page<2)
--select top 20 id from tb_errorlog where id>33333 and id<444444 order by id desc
set @sql=‘ select top ‘+ CONVERT(NVARCHAR(20),@PageSize) +‘ ‘+@FieldsName+‘ from ‘+@TableName+‘ ‘+@StrWhere+‘ ‘+@sqlOrder;
else if(@OrderASC=0)
begin
if(@StrWhere=‘‘)
-- select top 20 id from tb_errorlog
-- where id<(select min(id) from (select top 30000 id from tb_errorlog order by id desc) as cnic_t_2012_001)
-- order by id desc
set @sql=‘select top ‘+ CONVERT(NVARCHAR(20),@PageSize) +‘ ‘+@FieldsName+‘ from ‘+@TableName
+‘ where ‘+@IdName+‘<(select min(‘+@IdName+‘) from (select top ‘+CONVERT(NVARCHAR(20),@PageSize*(@Page-1))+‘ ‘+@IdName+‘ from ‘+@TableName+‘ ‘+@sqlOrder+‘) as cnic_t_2012_001) ‘
+@sqlOrder
else
-- select top 20 id from tb_errorlog where id>33333 and id<444444
-- and id<(select min(id) from (select top 30000 id from tb_errorlog where id>33333 and id<444444 order by id desc) as cnic_t_2012_001)
-- order by id desc
set @sql=‘select top ‘+ CONVERT(NVARCHAR(20),@PageSize) +‘ ‘+@FieldsName+‘ from ‘+@TableName+‘ ‘+ @StrWhere
+‘ and ‘+@IdName+‘<(select min(‘+@IdName+‘) from (select top ‘+CONVERT(NVARCHAR(20),@PageSize*(@Page-1))+‘ ‘+@IdName+‘ from ‘+@TableName+‘ ‘+ @StrWhere+‘ ‘+@sqlOrder+‘) as cnic_t_2012_001) ‘
+@sqlOrder
end
else
begin
if(@StrWhere=‘‘)
-- select top 20 id from tb_errorlog
-- where id<(select min(id) from (select top 30000 id from tb_errorlog order by id desc) as cnic_t_2012_001)
-- order by id desc
set @sql=‘ select top ‘+ CONVERT(NVARCHAR(20),@PageSize) +‘ ‘+@FieldsName+‘ from ‘+@TableName
+‘ where ‘+@IdName+‘>(select max(‘+@IdName+‘) from (select top ‘+CONVERT(NVARCHAR(20),@PageSize*(@Page-1))+‘ ‘+@IdName+‘ from ‘+@TableName+‘ ‘+@sqlOrder+‘) as cnic_t_2012_001) ‘
+@sqlOrder
else
-- select top 20 id from tb_errorlog where id>33333 and id<444444
-- and id<(select min(id) from (select top 30000 id from tb_errorlog where id>33333 and id<444444 order by id desc) as cnic_t_2012_001)
-- order by id desc
set @sql=‘select top ‘+ CONVERT(NVARCHAR(20),@PageSize) +‘ ‘+@FieldsName+‘ from ‘+@TableName+‘ ‘+ @StrWhere
+‘ and ‘+@IdName+‘>(select max(‘+@IdName+‘) from (select top ‘+CONVERT(NVARCHAR(20),@PageSize*(@Page-1))+‘ ‘+@IdName+‘ from ‘+@TableName+‘ ‘+ @StrWhere+‘ ‘+@sqlOrder+‘) as cnic_t_2012_001) ‘
+@sqlOrder
end
end
--print (@sql);
exec (@sql);
set @sql=‘set @RowCount=(select count(‘+@FieldsName+‘) from ‘+@TableName+‘ ‘+@StrWhere+‘)‘;
exec sp_executesql @sql, N‘@RowCount int output‘, @TotalRow output;
END

GO


            SqlParameter[] Param = new SqlParameter[]{
new SqlParameter("@TableName","tb-xxx"),//0
new SqlParameter("@FieldsName","*"),//1
new SqlParameter("@IdName","ID"),//2
new SqlParameter("@StrWhere",sql.ToString()),//3 带where
new SqlParameter("@OrderASC",SortType==1),//4 此参数必须先强制转换为object类型
new SqlParameter("@Page",page),//5
new SqlParameter("@PageSize",pageSize),//6
new SqlParameter("@TotalRow",0)//7
};
Param[7].Direction = ParameterDirection.Output;
using (SqlDataReader dr = DbHelperSQL.RunProcedure("PRO_PageForIdTable", Param))
{
while (dr.Read())
{
rtun.Add(GetModel(dr));
}
dr.Close();
}
TotalRow = Convert.ToInt32(Param[7].Value);
MaxPage = Units.GetPageCount(TotalRow, pageSize);
return rtun;

SQL.PRO_PageForIdTable,码迷,mamicode.com

时间: 2025-01-12 18:11:07

SQL.PRO_PageForIdTable的相关文章

SQL查询字段添加括号报错:Operand should contain 1 column(s)

SQL语句:查询连个字段的信息 SELECT (menu_id,menu_captions) FROM bsdb.menulist a WHERE a.menu_id like ('2_'); 然后,因为这是在存储过程中的一个语句所以,在执行存储过程的时候编译不会报错,但是执行的时候却汇报错:Operand should contain 1 column(s):原因不好解释: 下面是官方发解释(MYSQL):https://dev.mysql.com/doc/refman/5.0/en/row-

SQL Server 2008的MSSQLSERVER 请求失败或服务未及时响应

我的是SQL server 2008R2, 以前可以正常的启动SQL server(SQLEXPRESS).SQL server(MSSQLSERVER),有几天没有打开了,就在昨天 开机之后就无法启动MSSQLSERVER了,提示的信息如下图: 快速解决办法如下: 第一步:打开事件查看器,查看windows日志,点击应用程序,查看windows错误日志 http://product.pconline.com.cn/itbk/software/win8/1211/3060037.html 第二步

【Kettle】4、SQL SERVER到SQL SERVER数据转换抽取实例

1.系统版本信息 System:Windows旗舰版 Service Pack1 Kettle版本:6.1.0.1-196 JDK版本:1.8.0_72 2.连接数据库 本次实例连接数据库时使用全局变量. 2.1 创建新转换:spoon启动后,点击Ctrl+N创建新转换 2.2 在新转换界面中,右键点击DB连接,系统会弹出[数据库连接]界面. windows系统环境下,可用${}获取变量的内容. 说明: 连接名称:配置数据源使用名称.(必填) 主机名称:数据库主机IP地址,此处演示使用本地IP(

sql常用格式化函数及字符串函数

一.常用格式化函数 1.日期转字符串 select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI:SS') //2017-09-18 22:41:50 YYYY:年(4和更多位) MM:月份号(01-12) DD:一个月里的日(01-31) HH24:一天的小时数(00-23) MI:分钟(00-59) SS:秒(00-59) 2.字符串转日期 select to_date('2017-09-18','YYYY-MM-DD') //2017-09-

Bootstrap + AngularJS+ Ashx + SQL Server/MySQL

去年年底12月,为适应移动端浏览需求,花了1个月时间学习Bootstrap,并将公司ASP网站重构成ASP.NET. 当时采取的网站架构: Bootstrap + jQuery + Ashx + SQL Server 时间紧,没人带,只能硬着头皮,最后如期完成,但是也遗留了几个问题. 问题: 1.页面查询条件太复杂,太多的checkbox,jQuery操作DOM虽然方便,但是组合成json提交给后端还是比较麻烦,有没有天然支持json的前端框架或者脚本语言? html控件做的任何修改,都自动保存

Spark SQL 之 Join 实现

原文地址:Spark SQL 之 Join 实现 Spark SQL 之 Join 实现 涂小刚 2017-07-19 217标签: spark , 数据库 Join作为SQL中一个重要语法特性,几乎所有稍微复杂一点的数据分析场景都离不开Join,如今Spark SQL(Dataset/DataFrame)已经成为Spark应用程序开发的主流,作为开发者,我们有必要了解Join在Spark中是如何组织运行的. SparkSQL总体流程介绍 在阐述Join实现之前,我们首先简单介绍SparkSQL

PL/SQL developer 连接oracle数据库报错“initialization error could not load oci.dll”

声明:PL/SQL 版本:PL/SQL Developer 9.0.6 (http://files.allroundautomations.com/plsqldev906.exe) 报错提示如图: 原因:PL/SQL只对32位OS进行支持,解决方法是额外加载一个oci.dll文件 解决办法:1.下载OCI.DLL相关库文件.地址: (需注册Oracle账号) http://www.oracle.com/technetwork/topics/winsoft-085727.html ----->  

WAF——针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入、XSS跨站、Webshell上传、命令注入、非法HTTP协议请求、非授权文件访问等

核心概念 WAF Web应用防火墙(Web Application Firewall),简称WAF. Web攻击 针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入.XSS跨站.Webshell上传.命令注入.非法HTTP协议请求.非授权文件访问等.

sql

use simulation; # 多条SQL语句必须以分号分隔 show DATABASES ; show TABLES ; show COLUMNS from customers; # SQL语句不区分大小写 SHOW COLUMNS FROM products; SHOW COLUMNS FROM vendors; SHOW COLUMNS FROM orders; SHOW COLUMNS FROM productnotes; SHOW COLUMNS FROM orderitems;