在JDBC中调用SQL Server中的存储过程时出现如下异常:
com.microsoft.sqlserver.jdbc.SQLServerException: 该语句没有返回结果集。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:171)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:394)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:340)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4575)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1400)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:179)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:154)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:283)
解决方法:在存储过程首行加上
SET NOCOUNT ON
环境:SQL Server 2000 sp4 + 官方2008驱动(sqljdbc4.jar)
分享到:
相关推荐
另一种方法是使用原生SQL查询,这样可以直接控制SQL语句的生成,包括使用LIMIT和OFFSET关键字(对于MySQL等数据库)或ROW_NUMBER()函数(对于SQL Server)来实现分页。这同样可以绕过Hibernate的默认只进结果集行为...
在 SQL Server 中,存储过程是一个预编译的 SQL 语句集,可以对数据库中的数据进行操作。在本例中,创建了一个名为 `InsertUser` 的存储过程,该存储过程用于向 `BookUser` 表中插入新用户信息。 2. 存储过程的参数...
**存储过程(Stored Procedure)**:是一种预编译的SQL代码,可以被多次调用并在服务器上执行,提高了SQL语句的执行效率和重用性。它可以在数据库中定义并保存,之后可以在应用程序中通过简单的调用来执行复杂的逻辑...
总的来说,Java通过JDBC调用SQL Server存储过程涉及连接数据库、创建CallableStatement对象、设置参数、执行存储过程以及处理结果。了解这些步骤,将使你能够灵活地在Java应用程序中集成和利用SQL Server的存储过程...
在JavaServer Pages (JSP) 中调用SQL Server存储过程是一项常见的任务,特别是在构建Web应用程序时需要执行复杂的数据库操作。存储过程是预先编译的SQL语句集合,可以在数据库服务器上执行,提供性能优化和代码复用...
在SQL Server中,存储过程是一种预编译的SQL语句集合,可以视为数据库中的可重用函数,用于执行特定的任务。它们提供了许多优势,包括性能优化、代码复用、安全性增强以及减少网络流量等。本篇文章将深入探讨如何在...
SQL Server 2000 JDBC 是Java编程语言与Microsoft SQL Server 2000数据库进行交互的一种重要方式。JDBC(Java Database Connectivity)是Java API,允许Java应用程序通过Java虚拟机(JVM)与各种数据库建立连接。在...
对于SQL Server特定的功能,如T-SQL存储过程,JDBC Driver 3.0也提供了调用接口。开发者可以通过CallableStatement对象来执行存储过程,并获取其返回的结果。 在安全性方面,JDBC Driver 3.0支持SSL加密,保证了...
4. **处理结果集**:遍历`ResultSet`,获取存储过程返回的集合数据: ```java while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); // ... 其他字段 System.out.println("ID: ...
JDBC驱动还提供了高级特性,如预编译的SQL语句(`PreparedStatement`)、存储过程调用、游标支持等,以便更高效、安全地与SQL Server交互。 对于SQL Server 2008 R2,了解JDBC驱动的使用是关键,但也要注意驱动的...
### JSP调用SQL Server的存储过程 在本篇文章中,我们将探讨如何通过JSP页面来调用SQL Server中的存储过程。此示例涉及到数据库表的创建、存储过程的定义以及JSP页面上的具体实现。 #### 数据库表的创建 首先,...
这是SQL Server 2000的主要JDBC驱动文件,实现了JDBC API,使得Java应用程序能够建立到SQL Server的网络连接,执行SQL语句,处理结果集,并管理事务。这个驱动程序通常被注册为类型4 JDBC驱动,即纯Java的数据库...
4. 执行SQL:通过Connection对象创建Statement或PreparedStatement对象,然后调用其executeQuery()或executeUpdate()方法执行SQL语句。 5. 处理结果:对于查询语句,可以获取ResultSet对象并遍历其中的数据;对于...
JDBC提供了一组接口和类,开发者可以使用它们来执行SQL语句、处理结果集以及管理数据库连接。 2. SQL Server 2000 JDBC驱动程序: 要在Java中连接SQL Server 2000,需要一个兼容的JDBC驱动程序。Microsoft提供了...
它提供了与数据库建立连接、执行SQL语句、处理结果集等核心操作的类和接口,如java.sql.Connection、java.sql.Statement、java.sql.ResultSet等。 2. **mssqlserver.jar**:这是针对SQL Server特定的实现,包含了...
这个例子讲解了如何使用JSP调用SQL Server的存储过程,并介绍了相关的知识点,例如创建表、创建存储过程、JSP调用存储过程、JDBC驱动、CallableStatement、Connection、事务机制和错误处理机制。
- `PreparedStatement`接口预编译SQL语句,提供更高效、安全的方式,尤其在处理参数时,防止SQL注入,如: ```java PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM myTable WHERE id = ?"); ...
4. **执行查询**:使用 `exec` 函数执行SQL查询语句(此处为 `SELECT * FROM TestTable`),该语句返回一个游标对象。 5. **获取数据**:通过调用 `fetch` 方法从游标中获取数据,并将其存储在MATLAB数组 `data` 中...
JDBC(Java Database Connectivity)是Java语言中用于与各种数据库进行交互的一套标准API,它允许Java应用程序通过编写Java代码来执行SQL语句,从而实现对数据库的操作。 在Java开发中,JDBC驱动是必不可少的部分,...
4. **存储过程**:通过`CallableStatement`调用SQLServer的存储过程,如: ```java CallableStatement cstmt = conn.prepareCall("{call myProc(?, ?)}"); cstmt.setString(1, "param1"); cstmt....