0 0

jdbc控制sql server 2000事务的问题3

最近在看jdbc方面基础的东西,发现在sql server 2000中。将默认的事务提交通过setAutoCommit(false)方法修改后,然后在第二次调研
connection.prepareStatement(sql)时总提示:[Microsoft][SQLServer 2000 Driver for JDBC]Can't start a cloned connection while in manual transaction mode.
  代码如下:

public int Query(String ht, String xm) {
Connection conn = null;
PreparedStatement pst = null;
ResultSet rs = null;
String htbh = ht;
String xmbh = xm;
float dj = 0.0f;
float bcdj = 0.0f;
float bghdj = 0.0f;
boolean boo = false;
int i = 0;
try {
conn = SinglJdbcUtil.getIntance().getConnection();
conn.setAutoCommit(false);
boo = conn.getAutoCommit();
System.out.println("2: " + boo);
String sql = "SELECT htbh, gclx, pzwh, gq, xmbh, xmmc, dj, bcdj, bghdj, pfsl"
+ " FROM mp_Htjsb WHERE htbh = ? AND xmbh = ? AND GCLX = '单价变更'";
pst = conn.prepareStatement(sql);
pst.setString(1, htbh);
pst.setString(2, xmbh);
rs = pst.executeQuery();
if (rs.next()) {
dj = rs.getFloat("dj");
bcdj = rs.getFloat("bcdj");
bghdj = rs.getFloat("bghdj");
}
if (dj != bghdj || bghdj != 0) {
bcdj = Math.abs(dj - bghdj);
sql = "UPDATE mp_Htjsb SET pfje = pfsl * bghdj + 0.15, bcdj = ? "
+ " WHERE htbh = ? AND xmbh = ? AND GCLX = '单价变更'";
}
pst = conn.prepareStatement(sql);//执行到此处发生异常
pst.setFloat(1, bcdj);
pst.setString(2, htbh);
pst.setString(3, xmbh);
i = pst.executeUpdate();
conn.commit();
} catch (SQLException ex) {
ex.printStackTrace();
try {
conn.rollback();
} catch (SQLException e) {
e.printStackTrace();
}
return i;
} finally {
SinglJdbcUtil.getIntance().free(rs, pst, conn);
}
return i;

}
请问达人们怎么解决或是我的思路问题出在哪里了

怎么没人理我啊
OO 
2010年11月15日 15:43
目前还没有答案

相关推荐

    sql server2000 jdbc

    String url = "jdbc:sqlserver://localhost:1433;databaseName=myDB"; String user = "username"; String password = "password"; Connection conn = DriverManager.getConnection(url, user, password); ``` ...

    最新jdbc for sql server 2000

    String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=myDB"; Connection conn = DriverManager.getConnection(url, "username", "password"); ``` 4. 执行SQL:通过Connection对象创建...

    jdbc链接SQLServer2000的3个驱动包

    String url = "jdbc:sqlserver://localhost:1433;databaseName=myDB"; String username = "myUser"; String password = "myPassword"; try { Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");...

    jdbc驱动sqlserver2000的3个jar包

    这是SQL Server 2000的主要JDBC驱动文件,实现了JDBC API,使得Java应用程序能够建立到SQL Server的网络连接,执行SQL语句,处理结果集,并管理事务。这个驱动程序通常被注册为类型4 JDBC驱动,即纯Java的数据库...

    Java程序通过JDBC连接Sqlserver2000所用到的Jar包

    对于SQL Server 2000,驱动类名通常是`com.microsoft.jdbc.sqlserver.SQLServerDriver`。然而,较新的版本可能使用`com.microsoft.sqlserver.jdbc.SQLServerDriver`。例如: ```java Class.forName(...

    jdbc sql server 2000驱动包

    标题中的“jdbc sql server 2000驱动包”指的是Java数据库连接(JDBC)驱动程序,用于在Java应用程序中与Microsoft SQL Server 2000数据库进行交互。JDBC是Java平台的一部分,它提供了一组接口和类,使得开发人员...

    SQL Server Driver for JDBC (JDBC 连接SQL Server 2000 )

    在本场景中,"JDBC连接SQL Server 2000"指的是利用JDBC驱动程序来实现Java代码对SQL Server 2000数据库的访问。这个驱动包包含了三个重要的JAR文件:msbase.jar、mssqlserver.jar和msutil.jar,它们分别是SQL Server...

    jdbc连接sql server 2000的驱动

    String url = "jdbc:sqlserver://localhost:1433;databaseName=myDatabase"; String user = "myUsername"; String password = "myPassword"; Connection conn = DriverManager.getConnection(url, user, ...

    连接sqlserver2000驱动 sqljdbc4 3.0版本

    JDBC提供了事务控制功能,允许你在一组操作中执行原子性操作。以下是如何使用`Connection`对象进行事务管理的示例: ```java conn.setAutoCommit(false); // 关闭自动提交 try { // 执行数据库操作... conn....

    sqlserver2000事务问题.txt

    在 SQL Server 2000 中,事务的管理和控制主要通过以下几种方式实现: 1. **显式事务**:由用户手动开始并结束的事务。 2. **隐式事务**:当用户没有显式地定义事务时,SQL Server 自动为每个语句创建的事务。 3. *...

    jdbc连接sqlserver2000的3个jar包

    标题提到的"jdbc连接sqlserver2000的3个jar包"可能包括了以下三个关键组件: 1. **Microsoft JDBC Driver for SQL Server**:这是微软官方提供的JDBC驱动,用于与SQL Server进行通信。对于SQL Server 2000,可能...

    jdbc连接SqlServer 2000jar文件

    总的来说,jdbc连接SqlServer 2000 jar文件是Java开发者进行数据库操作的重要组成部分,它们提供了与SQL Server 2000通信的桥梁,使得开发人员能够在Java环境中执行SQL查询、管理数据库对象以及处理事务等任务。

    JDBC SQLServer2000驱动包

    总结,"JDBC SQLServer 2000驱动包"是Java应用程序连接到SQLServer 2000数据库的关键组件,它提供了必要的类和方法来执行SQL语句、管理事务、优化性能并确保安全连接。使用这些驱动,开发者可以编写出高效、可靠的...

    JDBC连接SQL Server 2008 R2的驱动

    Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=myDatabase", "myUsername", "myPassword"); ``` 其中,`localhost:1433`是SQL Server默认监听的IP和端口,`...

    自己亲自验证的sql server2000好用的sqljdbc,以及例子

    Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=myDB", "username", "password"); ``` 4. **执行SQL**:一旦建立了连接,你可以使用`Statement`或`...

    SQL Server 2000jdbc

    String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=myDB"; String username = "myUsername"; String password = "myPassword"; Connection conn = DriverManager.getConnection(url, username,...

    SQL Server 2000 Driver for JDBC Service Pack 3

    SQL Server 2000 Driver for JDBC Service Pack 3 是微软为Java开发者提供的一款用于连接SQL Server 2000数据库的重要驱动程序。JDBC(Java Database Connectivity)是Java平台中用于与各种数据库进行交互的标准API...

    JDBC for SQL Server 2000

    1. **全面支持JDBC 2.0规范**:该驱动程序实现了JDBC API的全部功能,包括连接池、批处理、事务控制等。 2. **高性能**:由于是纯Java实现,性能与数据库系统兼容性好,减少了数据传输的开销。 3. **兼容性**:...

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

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

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

    String url = "jdbc:sqlserver://localhost:1433;databaseName=myDB"; String username = "myUser"; String password = "myPassword"; try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); ...

Global site tag (gtag.js) - Google Analytics