`

com.microsoft.sqlserver.jdbc.SQLServerException: 该语句没有返回结果集

阅读更多

数据库由sqlserver2000迁移到sqlserver2008的时候,当查询执行存储过程时,总会抛出以上异常,后来查资料发现原来2008的驱动会关注到存储过程执行过程中返回的“影响多少行”这些信息,有这些信息存在,就会抛出以上异常:
解决办法:在sql语句前加“SET NOCOUNT 设为 ON ”,表示不返回计数(表示受 Transact-SQL 语句影响的行数)

另外,当sql2000迁移到sql2008或者sql2005的时候,老的sql2000驱动要跟着升级,具体可以查询相关资料下载。

附注:使用jtds连接数据库,目前版本是jtds-1.2.jar。这个驱动可以连接sql2000~2008,最初我的数据库由sql2000迁移到sql2008的时候,就是用的jtds驱动,可以成功连接数据库。只是在记录集游标滚动上面,一直抛出
java.sql.SQLException: ResultSet may only be accessed in a forward direction.
在这个问题上查询了很多资料,换了好几种游标格式,都未解决。目前系统暂用sql2008驱动。

我想这里应该需要游标的转换,即:
ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY
转成
JtdsResultSet.TYPE_SCROLL_SENSITIVE,JtdsResultSet.CONCUR_READ_ONLY
Statement换成JtdsStatement,使用jtds自有的一套数据库对象,应该可以解决以上问题吧。

(曾尝试修改转换这些对象,只是在jtds包里为找的jtds自由的Connection连接,没有办法生成JtdsResultSet对象,所以暂时未能成功,也许还存在其他的一些方法,望有研究过jtds的朋友给予指点)

分享到:
评论

相关推荐

    com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作 解决方案

    本文将深入探讨标题和描述中提到的“com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作”这一异常,以及如何在使用Hibernate、Struts进行分页时避免这一问题。我们将从异常的根本原因...

    MS SQL Server JDBC驱动2.0版,sqljdbc_2.0

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn = DriverManager.getConnection(url, username, password); // 使用连接执行数据库操作 } catch (ClassNotFoundException e) {...

    sqljdbc4-4.0.jar

    此外,驱动还提供了异常处理机制,如`SQLServerException`,用于捕获和处理在与SQL Server交互过程中可能出现的错误。 总的来说,"sqljdbc4-4.0.jar"是Java开发者连接和操作SQL Server数据库的重要工具,它提供了...

    sql server报错时的几种解决办法.txt

    在登录SQL Server的过程中,可能会遇到各种各样的错误提示,例如:“provider: 在登录过程中发生错误 (错误: 0)”、“无法打开到服务器的连接 (Microsoft SQL Server, 错误: 233)”或“登录失败。原因:未与信任的...

    SQL Server_JDBC驱动【mssql-jdbc-6.4.0.jre8.jar】.rar

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn = DriverManager.getConnection(url, username, password); System.out.println("Connected to the database!"); // 执行...

    JAVA使用JDBC技术操作SqlServer数据库实例代码

    首先,通过`Class.forName()`加载数据库驱动,这里是`com.microsoft.sqlserver.jdbc.SQLServerDriver`。然后,使用`DriverManager.getConnection()`方法,传入连接URL、用户名和密码,创建`Connection`对象。连接URL...

    sql server 2005 jdbc驱动配置

    com.microsoft.sqlserver.jdbc.SQLServerException: 到主机的 TCP/IP 连接失败。java.net.ConnectException: Connection refused: connect ``` 这通常意味着服务器未运行、防火墙阻止了连接,或者指定的端口号不正确...

    SQL Server 驱动 jdbc驱动 jdbc

    在这个例子中,我们使用`Class.forName()`方法加载`com.microsoft.sqlserver.jdbc.SQLServerDriver`,然后通过`DriverManager.getConnection()`创建连接。URL参数指定服务器地址、端口和数据库名。 一旦建立了连接...

    在Eclipse中用JDBC连接Sql Server 2005总结

    String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=sample"; String userName = "sa"; String userPwd = "123456"; ...

    JDBC连接SQL Server 2008问题

    ### JDBC连接SQL Server 2008问题解析与解决方案 #### 一、SQL Server JDBC连接问题概述 在尝试使用Java Database Connectivity (JDBC)来连接SQL Server 2000/2005/2008时,可能会遇到各种连接失败的问题。这些...

    JDBC与SQL Server 2005的连接方式

    String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=HaiFa"; String userName = "sa"; String userPwd = "1234"; ...

    jdbc for sql server 2000

    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); Connection conn = DriverManager.getConnection( "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=myDB", "username", "password")...

    Microsoft SQL Server JDBC Driver 2.0

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); conn = DriverManager.getConnection( "jdbc:sqlserver://localhost:1433;databaseName=myDB;", "username", "password"); System.out....

    JDBC SQLServer 2008驱动

    然后,通过注册`com.microsoft.sqlserver.jdbc.SQLServerDriver`驱动并调用`getConnection()`方法,可以建立到SQL Server 2008的连接。例如: ```java import com.microsoft.sqlserver.jdbc.*; public class ...

    SQL.rar_SQLServer j_sql jar包_sql.jar_sqlserver jar_sqlserver

    在上述代码中,`com.microsoft.sqlserver.jdbc.SQLServerDriver`是SQLServer JDBC驱动程序的类名,这通常来自"sqlserver.jar"。 总的来说,这些jar包提供了Java开发者与SQLServer数据库连接和操作的必要工具。在...

    JDBC连接SQL Server例子

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn = DriverManager.getConnection(url, user, password); System.out.println("连接成功!"); // ...其他数据库操作 } catch ...

    java通过JDBC链接SQLServer2016

    ### 使用Java通过JDBC连接SQL ...此外,还可以利用JDBC进行更复杂的数据操作,如执行SQL语句、获取查询结果集等,从而满足不同的业务需求。希望本文能帮助大家更好地掌握这一技能,并在未来的工作和学习中加以应用。

    Sqlserver 2000 jdbc驱动

    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); Connection conn = DriverManager.getConnection(url, username, password); // 进行数据库操作 } catch (Exception e) { e.printStackTrace...

    sql jdbc驱动sql2000.2005.2008

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn = DriverManager.getConnection(url, username, password); // 进行数据库操作... conn.close(); } catch (Exception e) { ...

Global site tag (gtag.js) - Google Analytics