天下第二博

Tian Xia The Second BO
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

JDBC与SQLServer 2000的一个链接问题

Posted on 2010-07-09 13:18  Nuke'Blog  阅读(200)  评论(0编辑  收藏  举报

报错如下:

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Can't start a cloned connection while in manual transaction mode.

 

转载:http://www.zjsyc.com/blog/
使用 sqlserver 的 手动事务处理,实现多条sql语句的顺序执行,当遇到操作失败时能够数据回滚。

在我使用 过程中发现了java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Can't start a cloned connection while in manual transaction mode. 错误。

解决办法是将:数据库连接语句加上 “SelectMethod=cursor ”

例:String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=enterprise;SelectMethod=cursor";

    public void transSet() throws SQLException {
        flag_conn = true;
        conn = DriverManager.getConnection(url, user, password);
        conn.setAutoCommit(false);

    }

手动事务处理代码:

    public void transCommit() throws SQLException {
        conn.commit();// 提交jdbc事务
        conn.setAutoCommit(true);// 恢复jdbc事务的默认提交方式
        flag_conn = false;
        conn.close();
    }

    public void transRollback() throws SQLException {
        conn.rollback();// 回滚事务
        flag_conn = false;
        conn.close();

    }