Xpages 如何使用jdbcRowSet回滚更新?
我可以使用acceptChanges,jdbcRowSet1.acceptChanges(),使用我的jdbcRowSet数据源接受更改(更新、删除等)。我如何回滚或取消任何更新、删除等 我尝试了jdbcRowSet1.rollback();但是我犯了一个错误 执行JavaScript操作表达式时出错 脚本解释器错误,第1行,第13列:Java类“com.ibm.xsp.extlib.jdbc.model.JdbcRowSetAccessor”中的未知成员“rollback” JavaScript代码 1:jdbcRowSet1.rollback() 有人试过这个吗Xpages 如何使用jdbcRowSet回滚更新?,xpages,xpages-extlib,Xpages,Xpages Extlib,我可以使用acceptChanges,jdbcRowSet1.acceptChanges(),使用我的jdbcRowSet数据源接受更改(更新、删除等)。我如何回滚或取消任何更新、删除等 我尝试了jdbcRowSet1.rollback();但是我犯了一个错误 执行JavaScript操作表达式时出错 脚本解释器错误,第1行,第13列:Java类“com.ibm.xsp.extlib.jdbc.model.JdbcRowSetAccessor”中的未知成员“rollback” JavaScrip
谢谢,Howard您的问题实际上不是针对XPages的,而是关于Java中的常规SQL管理,因此如果您想要比我提供的更深入的答案,您可能需要更新您的标记 您的连接很可能已将自动提交设置为true。这将强制数据集在您立即进行更改时提交更改,因此无需回滚任何内容。rollback()方法来自与行集相关的连接对象,并且在autocommit为true时不会提供回滚,因此会出现错误
您需要研究将自动提交更改为false,然后确保在完成更改后调用commit()或rollback()。如果您有多个事务发生,您还应该查看连接管理器中的事务。我在IBM出版社《扩展库》一书中有关SQL控件的章节中简要介绍了这一点。jdbcRowSet数据源目前不支持
回滚()。我们可能会在将来增加对此的支持(无担保)。在我的阅读中,有一个方法RowSet.cancelRowUpdates()
,我们可以在jdbcRowSet实现中使用它,但它只取消对行的更新,而不取消删除/插入
对于您的问题,一个简单的潜在解决方案是通过javascript调用重新加载页面,context.reloadPage()
,这将丢弃当前行集。简单化的解决方案,但它可能会为您带来好处。不,自动提交是错误的。我必须调用jdbcsresultset1.acceptChanges来接受我的更改。这实际上类似于JDBC_RowSetDatasource XPage中XPagesJDBC.nsf中的演示。有一个接受更改按钮。我想添加一个取消更改按钮。谢谢,Howard谢谢,是的,我想重新加载页面()会起作用,有点像锤子一样……感谢您的反馈!