数据库由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: 只进结果集不支持请求的操作 解决方案
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; String dbURL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=bookDB"; String userName = "chendy"; String userPwd = "123456...
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; String dbURL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=person"; String userName = "sa"; String userPwd = "sa"; ...
最近在给一个客户做调优的时候发现一个很有意思的现象,对于一个复杂查询(涉及12个表)建立必要的索引后,语句使用的IO急剧下降,但执行时间不降反升,由原来的8秒升到20秒。
点击SQL Server for JDBC驱动程序安装程序setup.exe(可以到微软网站下载 http://msdn.microsoft.com/library/default.asp?rul=/downloads/list/sqlserver.asp下载) 第二步:设置系统变量classpath 假设SQL ...
39、下面的程序代码输出的结果是多少? ................................................................. 26 40、final, finally, finalize 的区别。 ..........................................................
* 执行 SELECT 等 SQL 语句并返回结果集. * * @param sql * 需要发送到数据库 SQL 语句 * @return a <code>ResultSet</code> object that contains the data produced * by the given query; never <code>...
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); } catch (Exception e) { e.printStackTrace(); System.out.println("加载数据库驱动失败!"); } } /* 创建...
答:1.scroll是用JDBC2.0的可滚动结果集实现;query.setMaxResults();query.setFirstResult()是数据库SQL语句实现。 2.你说是在数据库就分页好呢?还是把结果集都取到内存再分页好呢?(应该是在数据库就分了好些吧...
private String driverName="com.microsoft.jdbc.sqlserver.SQLServerDriver"; private String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=demo"; private String user="sa"; private String...
//if(e.getMessage().equals("[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]DELETE 语句与 COLUMN REFERENCE 约束 'FK_TB_BORRO_REFERENCE_TB_BOOKI' 冲突。该冲突发生于数据库 'db_library',表 'tb_...
3.2.1. Web应用程序开发环境—SQLserver数据库 SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的。SQL Server 2000是Microsoft公司于...
SQL建表语句(在txlcn-tm模块的resource目录下) /* Navicat Premium Data Transfer Source Server : local Source Server Type : MySQL Source Server Version : 100309 Source Host : localhost:3306 ...
8.3.5 可滚动和可更新的结果集 296 8.4 jdbc数据源和连接池 299 8.5 mysql对中文的处理 302 8.6 小结 302 第9章 会话跟踪 303 9.1 用于会话跟踪的技术 303 9.1.1 ssl会话 304 9.1.2 cookies 304 9.1.3 url...
name 命名为aa,然后sql语句....where s_name= #{aa} 中就可以根据aa得到参数值 修改 回显 Controller @PathVariable("bid") 通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中...
8.3.5 可滚动和可更新的结果集 296 8.4 jdbc数据源和连接池 299 8.5 mysql对中文的处理 302 8.6 小结 302 第9章 会话跟踪 303 9.1 用于会话跟踪的技术 303 9.1.1 ssl会话 304 9.1.2 cookies 304 9.1.3 url...
Java Bean实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。Enterprise Java Bean 相当于DCOM,即分布式组件。它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨...
8.3.5 可滚动和可更新的结果集 296 8.4 jdbc数据源和连接池 299 8.5 mysql对中文的处理 302 8.6 小结 302 第9章 会话跟踪 303 9.1 用于会话跟踪的技术 303 9.1.1 ssl会话 304 9.1.2 cookies 304 9.1.3 url...