`
zhcheng
  • 浏览: 164311 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

sqlserver top 异常

    博客分类:
  • sql
阅读更多

SQL语句:

 

String sql = "select top ? * from bbs_posts where p_fid=? order by p_addtime desc";
         prepStmt = conn.prepareStatement(sql);
         prepStmt.setInt(1, xxx);
         prepStmt.setInt(2, xx);
         prepStmt.executeQuery()

 

预编译:
Exception:

 

java.sql.SQLException: '@P0' 附近有语法错误。
     at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:368)
     at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2816)
     at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2254)
     at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:631)
     at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:477)
     at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:777)
     at yixun.wap.db.DBConnection.executeQuery(DBConnection.java:41)
     at yixun.wap.bbs.dao.ForumDAO.get500WANforum(ForumDAO.java:282)
     at yixun.wap.bbs.BbsCache.get500WANforumCache(BbsCache.java:91)
     at yixun.wap.bbs.service.ForumBO.get500WANforum(ForumBO.java:143)
     at _jsp._page._bbs._space._second__jsp._jspService(_second__jsp.java:83)

 

原因:sql不支持为select top ? 预编译,换成动态拼接

 

String sql = "select top %s * from bbs_posts where p_fid=? order by p_addtime desc";
         sql = String.format(sql, num);

 

    或者是:

String sql = "select top (?) * from bbs_posts where p_fid=? order by p_addtime desc";   
         prepStmt = conn.prepareStatement(sql);   
         prepStmt.setInt(1, xxx);   
         prepStmt.setInt(2, xx);   
         prepStmt.executeQuery()  

 

 

分享到:
评论

相关推荐

    C#连接SqlServer数据库帮助类,SqlServerHelp

    `SqlServerHelp`类可能包含一个`ExecutePaging()`方法,使用`TOP`和`OFFSET-FETCH`或者`ROW_NUMBER() OVER()` SQL子句实现分页。这种方法可以接收页码和每页记录数作为参数,返回指定页的数据。 6. **配置文件**: ...

    SQLSERVER排查CPU占用高的情况

    ### SQL Server 排查 CPU 占用高情况详解 #### 背景介绍 SQL Server 是一款广泛使用的数据库管理系统,在企业级应用中占有重要地位。然而,在实际的应用场景中,可能会遇到诸如 CPU 使用率异常增高、系统响应变慢等...

    SQL Server 2005 T-SQL增强

    ### SQL Server 2005 T-SQL增强 #### 富有表现力的数据类型 (Richer Data Types) 在SQL Server 2005中,T-SQL得到了显著增强,其中一个重要方面是引入了新的数据类型。这些数据类型更加丰富且灵活,能够更好地支持...

    SQL Server 2005 JDBC Driver 1.2 for unix

    例如:"jdbc:sqlserver://servername:port;databaseName=dbname;user=username;password=password"。 3. **数据库连接**:使用`java.sql.DriverManager.getConnection()`方法建立数据库连接。你需要提供之前创建的...

    sqlserver中访问ORACLE返回1行数据

    ### SQL Server 中访问 Oracle 返回 1 行数据 #### 问题背景 在企业级应用环境中,经常需要在不同的数据库系统之间进行数据交换或共享。其中一种常见的情形是从 SQL Server 数据库环境中查询 Oracle 数据库的数据...

    SQLServer数据库实用语法

    ### SQL Server 数据库实用语法详解 #### 一、存储过程创建与使用 在 SQL Server 数据库管理系统中,存储过程是一种预编译的 SQL 代码集合,它可以被当作一个单独的对象来调用,从而提高应用程序的执行效率并简化...

    jsp+sqlserver分页代码

    String strConn="jdbc:sqlserver://localhost:1433;DatabaseName=abc"; conn=DriverManager.getConnection(strConn,"sa","123"); ``` - **`Class.forName`**:加载SQL Server的JDBC驱动。 - **`String strConn`**:...

    SQL SERVER 2005 新增的几个小功能

    SQL Server 2005引入了结构化的异常处理机制——`TRY...CATCH`,使得开发者能够更好地控制和管理运行时错误。 **示例代码**: ```sql SET XACT_ABORT ON; -- 打开try功能 BEGIN TRY BEGIN TRAN; INSERT INTO Sys...

    SQL Server 2008:如何面对众多选择?——复杂的版本问题和令人困惑的许可选项令SQL Server备受挫折.pdf

    5. SQL Server查询行为的差异:例如,在SQL Server 2000中使用 TOP (100) PERCENT 和 ORDER BY 子句的视图查询会按照指定的顺序返回结果,而在SQL Server 2008和SQL Server 2005中,相同的查询可能会随机返回结果。...

    DataGridView分页(Sql Server 2005)

    本教程将详细讲解如何在C#环境中,结合Sql Server 2005数据库实现`DataGridView`的分页功能。 一、基本概念与原理 1. `DataGridView`: 这是Windows Forms中的一个控件,可以显示二维表格数据,支持数据编辑、排序...

    SQL Server精华技巧集

    - 使用`TRY...CATCH`结构进行异常处理,编写健壮的T-SQL代码。 - 管理SQL Server的日志文件,包括错误日志和事务日志,确保信息记录与排查。 以上是SQL Server使用中的部分精华技巧,掌握这些知识点能让你在...

    SQL Server 2005新功能-TSQL的描述

    在SQL Server 2000中,TOP关键字只能用于返回固定的行数。而在SQL Server 2005中,TOP表达式支持变量,允许动态地指定返回的行数。例如,通过声明一个变量@n并设置其值,然后在TOP(@n)中使用,就可以灵活地获取前n...

    sqlserver面试大全

    在SQL Server面试中,面试官通常会关注应聘者对数据库管理、查询优化、事务处理、安全性、备份恢复以及性能调优等多方面的理解和实践经验。以下是一些可能在面试中涉及的关键知识点: 1. SQL基础: - 数据类型:...

    case0705_sqlserver_

    在本案例"case0705_sqlserver_"中,我们主要关注的是使用C#语言与SQL Server数据库进行交互,实现人员信息的管理功能,包括增(添加)、删(删除)、改(修改)和查(查询)等基本操作。SQL Server是一款广泛应用于...

    不同数据库sql语言差异化转换(sqlserver-->oracle)

    SQL Server常用`TOP`和`ORDER BY`结合实现分页,而Oracle则采用`ROWNUM`配合子查询或`OFFSET-FETCH`语法。转换时,需根据Oracle的分页方式调整代码。 4. **游标与循环** SQL Server的`DECLARE CURSOR`和`FETCH ...

    vs2005+sqlserver2000 做的简单新闻发布系统

    这是一个基于Visual Studio 2005 (VS2005) 和 Microsoft SQL Server 2000 开发的简易新闻发布系统。这个系统的核心目标是提供一个发布和管理新闻内容的平台,适合小型企业或者个人网站使用。下面我们将深入探讨这个...

    asp.net测试SQLSERVER连接程序

    在描述中提到的"asp.net测试SQLSERVER连接程序"可能是一个简单的Web应用,它包含了一个网页,用户输入连接字符串,然后应用程序尝试连接到指定的SQL Server并显示连接是否成功的状态。这个小程序对于初学者来说是一...

    .net&VS;&SqlServer;编程小技巧经验总结

    ### .NET & VS & SQL Server 编程小技巧经验总结 #### 一、C#编程技巧 ##### EF中视图建模 在使用Entity Framework (EF) 进行数据库建模时,如果需要将数据库中的视图映射到实体类中,可能会遇到一个问题:当视图...

    sqlserver注入攻击.doc

    ### SQLServer注入攻击知识点 #### 一、SQLServer安全机制与加密技术 **1. SQLServer内置加密技术** - **目的**: SQLServer内置了一系列加密功能,旨在保护敏感数据免受未授权访问。 - **实现**: 当数据存储时会...

    SQL Server 2012 Tutorials - Transact SQL DML Reference

    Transact-SQL是SQL Server的专有扩展,它不仅包含了标准SQL的功能,还引入了额外的特性,如变量、流程控制结构和异常处理机制。理解Transact-SQL的语法约定对于编写高效、安全的数据库应用程序至关重要。 - **...

Global site tag (gtag.js) - Google Analytics