jtds-1.2.2 操作mssql2005和mssql208的存储过程时出现ResultSet may only be accessed in a forward direction.
在mssql2000下,并没有出现这样的问题。
原mssql20000下的代码如下:
cstmt = conn.prepareCall("{call cr_OrderByTrade(?,?,?,?,?)}");
cstmt.setInt(1, action);
cstmt.setString(2, comCode);
cstmt.setString(3, depCode);
cstmt.setString(4, from);
cstmt.setString(5, to);
rs = cstmt.executeQuery();
rs.last();
if (rs.isLast()) {
recordCount = rs.getRow();
}
虽然我改了
cstmt = conn.prepareCall("{call cr_OrderByTrade(?,?,?,?,?)}");为cstmt = conn.prepareCall("{call cr_OrderByTrade(?,?,?,?,?)}",ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY );
可是,错误还涛声依旧
后来在跟踪mssql2008时,无意的看到一个 无法在给定的语句中打开服务器游标。请使用默认结果集或客户端游标。
错误,google以后得到答案,改成了以下代码,成功执行:
cstmt = conn.prepareCall("{call cr_OrderByTrade(?,?,?,?,?)}",ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY );
cstmt.setInt(1, action);
cstmt.setString(2, comCode);
cstmt.setString(3, depCode);
cstmt.setString(4, from);
cstmt.setString(5, to);
cstmt.executeQuery();
rs = cstmt.getResultSet();
//rs = cstmt.executeQuery();
rs.last();
附上以下错误,方便搜索的朋友搜到
at net.sourceforge.jtds.jdbc.JtdsResultSet.checkScrollable(JtdsResultSet.java:316)
at net.sourceforge.jtds.jdbc.JtdsResultSet.last(JtdsResultSet.java:563)
at com.job36.struts.crm.manager.KeywordChangManage.getApplyByStatus(KeywordChangManage.java:46)
分享到:
相关推荐
SQL Server是Microsoft公司提供的一款关系型数据库管理系统,广泛应用于企业级的数据存储和管理。为了与Java应用程序进行交互,我们需要使用特定的驱动程序,这就是SQL Server驱动。本文将详细介绍SQL Server官方...
在Java编程中,调用SQL存储过程是数据库操作中的常见任务,这有助于提高应用程序的效率和性能。Java通过`CallableStatement`接口提供了调用存储过程的功能,使其能够适应不同的数据库管理系统(DBMS)。下面将详细...
在IT领域,数据库连接是应用程序与数据库交互的关键环节。在这个场景中,我们关注的是在Linux环境下,使用Kettle工具连接Microsoft SQL Server时所需...在实际操作中,确保正确配置驱动包,以确保你的ETL过程流畅无误。
【标题】"jtds sql2005 java驱动"涉及的是Java开发中与数据库连接相关的技术,特别是针对Microsoft SQL Server 2005的连接。JDBC(Java Database Connectivity)是Java语言中用于访问数据库的标准API,而jTDS是一款...
### JAVA调用存储过程知识点详解 #### 一、无结果集返回的存储过程调用 在Java中调用不返回结果集的存储过程时,主要使用`CallableStatement`对象配合预定义的SQL语法来实现。这里以SQL Server 2000数据库为例,并...
在将Microsoft SQL Server(简称mssql)的数据迁移到Oracle时,可能需要特定的插件来帮助完成这个过程,而JTDs可能在这个过程中作为桥梁,允许SQL Developer与SQL Server进行通信。 标签“mssql数据库迁移到oracle...
jTDS 是第三方开源的SQL Server/Sybase数据库的JDBC驱动程序,性能最好最稳定。适用于Microsoft SQL Server(6.5到2012年)和Sybase ASE的开源JDBC 3.0 Type 4驱动程序。jTDS是JDBC 3.0规范的完整实现,也是MS SQL ...
2. 数据查询:在连接到MSSQL后,你可以使用SQL编辑器编写查询语句,查看和操作表、视图、存储过程等数据库对象。DBeaver还提供了数据浏览、数据编辑、数据导入导出、数据库结构设计等多种功能。 3. 性能优化:...
JTDS(Java JDBC Driver for Sybase and Microsoft SQL Server)是一个开源的JDBC驱动,它允许Java开发者利用JDBC API来访问和操作Sybase数据库,同时也支持Microsoft SQL Server。 JDBC(Java Database ...
这里我们将深入探讨使用JDBC(Java Database Connectivity)驱动程序jTDS和sqljdbc来连接到数据库的过程,以及它们各自的特点和使用场景。 首先,JDBC是Java平台的一个标准接口,它允许Java应用程序与各种类型的...
3. **功能完备**:提供包括存储过程、事务处理、并发操作在内的所有标准JDBC功能,并支持一些特定于SQL Server的特性,如SSPI(Security Support Provider Interface)身份验证。 4. **内存管理**:相较于官方驱动,...
在Java编程中,数据库连接是不可或缺的部分,尤其是对于MySQL和Microsoft SQL Server这样的关系型数据库管理系统。本文将深入探讨如何在Java应用程序中使用相应的驱动程序连接到MySQL和MSSQL服务器。 首先,我们来...
### Kettle连接MSSQL使用JTDs驱动详解 #### 一、Kettle与MSSQL简介 1. **Kettle简介**: - **Pentaho Data Integration(PDI)**,通常被称为Kettle,是一款开源的数据集成工具,用于执行ETL(Extract-Transform-...
这里我们关注的是SQL Server 2005和2008数据库的Java连接驱动,具体包括sqljdbc与jtds-1.2.5两种。这两种驱动包允许Java应用程序通过JDBC(Java Database Connectivity)接口与SQL Server进行通信。 首先,让我们...
在【如何通过JTDS连接SQLServer2005】这个压缩包文件中,可能包含了上述步骤的详细说明、示例代码或者更深入的JTDS使用教程,可以帮助你更好地理解和实践这个过程。学习并掌握这种连接方式,将有助于你在实际开发中...
JTDS(Java Thin Database Driver for SQL Server)是一种开源的JDBC驱动程序,专门用于与Microsoft SQL Server和Sybase ASE数据库进行交互。这个压缩包“JTDS连接数据库分享.rar”包含了几个关键组件,可以帮助用户...
JTDs(Java Thin Database Driver)是一个开源的 JDBC 驱动程序,它提供了轻量级、高性能的连接选项,尤其在处理SQL Server和Sybase数据库时。 JDBC(Java Database Connectivity)是Java平台的标准接口,允许Java...
- **全面的功能支持**:支持存储过程、触发器、事务处理、批处理、游标、索引等功能,以及Unicode字符集和大型对象(如BLOB和CLOB)。 - **高级特性**:提供了SSL加密、自动重连、数据库别名、自动类型映射等...
JTDs 1.2.2还支持多种高级特性,如支持存储过程、事务处理、批处理、游标、预编译语句以及JNDI查找等。这些特性使得JTDs不仅适用于简单的数据访问,也能满足复杂的数据库操作需求。 在实际应用中,开发者可以通过...