近300万记录的论坛还用这个分页存储过程

http://www2.gliet.edu.cn/club2/bbs/list_new_today.asp

用于列出今日最新贴的。
有个想不明的问题是为什么
Declare @SqlText Varchar(1000)
声明为1000个字符大了,但超过255字符之后exec(@SqlText)就会出错。
自动把后面的cut掉了?

None.gif
None.gif
ALTER    PROCEDURE bbsListNewToday
None.gif@curPage  
int = 0--当前页
None.gif
@PageSize int = 30--每页记录数
None.gif--
@ForumID varchar(4) ='',--每页记录数
None.gif--
@condition varchar(200)='',
None.gif--
@tolRecord  int output ado.command对象返回记录集时就不能用输出参数了 sad_smile.gif
None.gif

None.gif
AS
None.gif
begin
None.gif
set nocount on
None.gif
declare @StartRecord int    
None.gif
declare @EndRecord int    
None.gif
Declare @SqlText Varchar(1000)
None.gif
Declare @selCol Varchar(1000)
None.gif
Declare @fcondition varchar(1000)
None.gif
Declare @sPageSize varchar(10)

None.gif
Declare @tolRecord  int


None.gif
None.gif
if @curPage>0
None.gif
begin
None.gif    
set @curPage = @curPage-1
None.gif
end
None.gif
set @StartRecord = @curPage * @PageSize
None.gif
set @EndRecord = (@curPage +1 ) * @PageSize
None.gif
None.gif
None.gif
set @fcondition=' where boards.[user]=bbs.owner '
None.gif

None.gif
set @sPageSize = CAST( @PageSize AS varchar(30)) 
None.gif
--select len(@condition)
None.gif

None.gif
--返回总贴数
None.gif
 set @tolRecord=(select sum(totalCount) from boards)

None.gif
None.gif
None.gif
None.gif
--set @SqlText ='select top '+ CAST( @pageSize AS varchar(30))  +'  * from bbs order by id desc'
None.gif
set @selCol = N' bbs.[id] bbsid,TopID,[Owner] boardID,Layer,Click,[Time] postTime,Topic,bbs.[Name] poster,TxtLong,Face,IsBest,IsTop,subject boardName'
None.gif
if @curPage=0
None.gif
begin
None.gif    
set @SqlText ='select top  '+@sPageSize +' '+CAST( @tolRecord AS varchar(10))+' as tolRecord,'+ @selCol+' from bbs,boards ' + @fcondition+' order by bbsid desc'
None.gif
end
None.gif
else
None.gif
begin
None.gif    
set @SqlText ='select '+CAST( @tolRecord AS varchar(10))+' as tolRecord,* from( select top '+CAST( @sPageSize AS varchar(10))+' * from( select top '+CAST( @EndRecord AS varchar(10))+@selCol+' from bbs,boards '+@fcondition+' order by bbsid desc ) a order by bbsid  ) b order by bbsid desc'
None.gif
None.gif
end
None.gif
None.gif
exec(@SqlText)
None.gif
set nocount off    
None.gif
end
None.gif
GO
None.gif

None.gif
None.gif

转载于:https://www.cnblogs.com/wuchang/archive/2004/08/20/35192.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/269576.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA项目中classpath路径详解

classpath是什么路径? 1.classpath指的是类路径,也就是编译之后的target文件夹下的WEB-INF/class文件夹。 2.resources文件夹存放的是各种配置文件,当项目被编译时resources下的所有配置文件均被放在 WEB-INF/class文件夹下。也就是类路径下…

Idea运行项目报错:java.lang.OutOfMemoryError: Java heap space/ java.lang.OutOfMemoryError: GC overhead 解决方法

问题 使用Idea运行代码量比较多的项目时,会报错:java.lang.OutOfMemoryError: Java heap space java.lang.OutOfMemoryError: GC overhead limit exceeded java.lang.OutOfMemoryError: GC overhead limit exceeded 仔细看了整个报错过程,堆…

Leaning Method

001用分布在两个地方的两台办公电脑开发一个项目,计划使用gitee同步代码。具体应该怎么操作? 要使用 Gitee 同步代码,你可以按照以下步骤进行操作: 在两台办公电脑上都安装 Git 客户端,并在 Gitee 上创建一个项目仓库…

wamp php文件怎么创建数据库,phpmyadmin怎么创建数据库

phpmyadmin怎么创建数据库?1、首先登陆phpmyadmin,有两种方法,第一钟是直接点击wampserver图标,再点击phpmyadmin即可登陆进来是最常用的方法;其次是在浏览器地址中输入http://localhost:8080/phpmyadmin(注意8080是端口号&#…

maven的三大生命周期

一、Maven的生命周期 Maven的生命周期就是对所有的构建过程进行抽象和统一。包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有的构建步骤。 Maven的生命周期是抽象的,即生命周期不做任何实际的工作,实际任务由插…

static{}静态代码块与{}普通代码块和构造代码块之间的区别

public class TestStatic {{System.out.println("构造代码块");}TestStatic() {System.out.println("构造函数代码块");}//类级别的初始化,只是在类加载的时候做一次static {System.out.println("static静态代码块");} } 1.静态代码块…

多线程编程(三)--创建线程之Thread VS Runnable

前面写过一篇基础的创建多线程的博文: 那么本篇博文主要来对照一下这两种创建线程的差别。 继承Thread类: 还拿上篇博客的样例来说: 四个线程各自卖各自的票,说明四个线程之间没有共享,是独立的线程。每一个线程平等。…

用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变

使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变 答: 使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。 代码 public class TestFinal {private static final StringBuffer a new S…

Intellij IDEA中maven更新不下来pom中的jar包,reimport失效

问题: Intellij IDEA中使用maven reimport包,一直失败 即使我将本地已存在的一个jar包目录删除了,pom文件那里也没飘红提示找不到 解决方法: maven设置中去掉离线下载。 Work offline:勾选上时不会走maven远程仓…

Java+XML+MVC框架StrutsCX简介[转]

StrutsCX是一个以Struts为基础的XML解决方案的框架,和Struts不同,它使用XML(确切的说是XSLT)作为表现层,而不是像Struts那样是以JSP作为表现层。 目前它的最新版本是0.9.5,这个也就意味着它还没有完全稳定和…

oracle高资源消耗sql,Oracle中定位重要(消耗资源多)的SQL

在分析SQL性能的时候,经常需要确定资源消耗多的SQL,总结如下: 1 查看值得怀疑的SQLselect substr(to_char(s.pct,在分析SQL性能的时候,经常需要确定资源消耗多的SQL,,总结如下:1 查看值得怀疑的…

@PostContruct注解的使用

PostConstruct是Java自己的注解. PostConstruct该注解被用来修饰一个非静态的void()方法. PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次. PostConstruct在构造函数之后执行,init()方法之前执行. 如果我们知道servlet的生命周期&#xff…

《Vim实用技巧》阅读笔记 --- 移动及跳转

1、在对实际行的操作之前加上g,即可对屏幕行进行操作,例如:gj表示向下移动一个屏幕行,g^表示移动到屏幕行的第一个非空白字符等等 2、Vim有两组面向单词正向及反向移动的命令: w 正向移动到下一个单词的开头b 反向移动…

oracle财务软件凭证打印,金算盘财务软件后台数据库为Oracle

金算盘财务软件后台数据库为Oracle,OA系统中虽然提供了金算盘财务软件的接口,但由于版本较低,无法直接采集金算盘财务软件的备份数据。我们发现,在已试验的金算盘财务软件的凭证表中,科目字段中既有科目编码也有科目名…

Unity GeometryShader(从一个线框渲染的例子开始)

GeometryShader这个概念,已经出现很久了,但由于性能不佳,所以使用的并不多。甚至移动平台根本就不支持。移动平台的硬件更新速度也是越来越快,GS的应用普及应该不会太远。就现阶段而言,GS来做一些辅助效果也是有一定用…

为什么SimpleDateFormat不是线程安全的?以及解决方法说明

一:概述 SimpleDateFormat 类主要负责日期的转换与格式化等操作,在多线程的环境中,使用此类容易造成数据转换及处理的不正确,因为 SimpleDateFormat 类并不是线程安全的,但在单线程环境下是没有问题的。 SimpleDateF…

《Effective C#》读书笔记-1.C# 语言习惯-2.使用运行时常量(readonly)而不是编译时常量(const)...

概念 编译时编译时顾名思义就是正在编译的时候。那啥叫编译呢?就是编译器帮你把源代码翻译成机器能识别的代码。(当然只是一般意义上这么说,实际上可能只是翻译成某个中间状态的语言。比如Java只有JVM识别的字节码,C#中只有CLR能识别的MSIL。…

MQ介绍

一:MQ介绍 1:异步 2:解耦 3:削峰 二:MQ优缺点 三:Kafka和RabbitMQ和RocketMQ比较