数据库由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: 只进结果集不支持请求的操作”这一异常,以及如何在使用Hibernate、Struts进行分页时避免这一问题。我们将从异常的根本原因...
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn = DriverManager.getConnection(url, username, password); // 使用连接执行数据库操作 } catch (ClassNotFoundException e) {...
在登录SQL Server的过程中,可能会遇到各种各样的错误提示,例如:“provider: 在登录过程中发生错误 (错误: 0)”、“无法打开到服务器的连接 (Microsoft SQL Server, 错误: 233)”或“登录失败。原因:未与信任的...
此外,驱动还提供了异常处理机制,如`SQLServerException`,用于捕获和处理在与SQL Server交互过程中可能出现的错误。 总的来说,"sqljdbc4-4.0.jar"是Java开发者连接和操作SQL Server数据库的重要工具,它提供了...
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn = DriverManager.getConnection(url, username, password); System.out.println("Connected to the database!"); // 执行...
首先,通过`Class.forName()`加载数据库驱动,这里是`com.microsoft.sqlserver.jdbc.SQLServerDriver`。然后,使用`DriverManager.getConnection()`方法,传入连接URL、用户名和密码,创建`Connection`对象。连接URL...
com.microsoft.sqlserver.jdbc.SQLServerException: 到主机的 TCP/IP 连接失败。java.net.ConnectException: Connection refused: connect ``` 这通常意味着服务器未运行、防火墙阻止了连接,或者指定的端口号不正确...
在这个例子中,我们使用`Class.forName()`方法加载`com.microsoft.sqlserver.jdbc.SQLServerDriver`,然后通过`DriverManager.getConnection()`创建连接。URL参数指定服务器地址、端口和数据库名。 一旦建立了连接...
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问题解析与解决方案 #### 一、SQL Server JDBC连接问题概述 在尝试使用Java Database Connectivity (JDBC)来连接SQL Server 2000/2005/2008时,可能会遇到各种连接失败的问题。这些...
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=HaiFa"; String userName = "sa"; String userPwd = "1234"; ...
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); Connection conn = DriverManager.getConnection( "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=myDB", "username", "password")...
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); conn = DriverManager.getConnection( "jdbc:sqlserver://localhost:1433;databaseName=myDB;", "username", "password"); System.out....
然后,通过注册`com.microsoft.sqlserver.jdbc.SQLServerDriver`驱动并调用`getConnection()`方法,可以建立到SQL Server 2008的连接。例如: ```java import com.microsoft.sqlserver.jdbc.*; public class ...
在上述代码中,`com.microsoft.sqlserver.jdbc.SQLServerDriver`是SQLServer JDBC驱动程序的类名,这通常来自"sqlserver.jar"。 总的来说,这些jar包提供了Java开发者与SQLServer数据库连接和操作的必要工具。在...
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn = DriverManager.getConnection(url, user, password); System.out.println("连接成功!"); // ...其他数据库操作 } catch ...
### 使用Java通过JDBC连接SQL ...此外,还可以利用JDBC进行更复杂的数据操作,如执行SQL语句、获取查询结果集等,从而满足不同的业务需求。希望本文能帮助大家更好地掌握这一技能,并在未来的工作和学习中加以应用。
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); Connection conn = DriverManager.getConnection(url, username, password); // 进行数据库操作 } catch (Exception e) { e.printStackTrace...
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn = DriverManager.getConnection(url, username, password); // 进行数据库操作... conn.close(); } catch (Exception e) { ...