Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xpages 如何使用jdbcRowSet回滚更新?_Xpages_Xpages Extlib - Fatal编程技术网

Xpages 如何使用jdbcRowSet回滚更新?

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

我可以使用acceptChanges,jdbcRowSet1.acceptChanges(),使用我的jdbcRowSet数据源接受更改(更新、删除等)。我如何回滚或取消任何更新、删除等

我尝试了jdbcRowSet1.rollback();但是我犯了一个错误

执行JavaScript操作表达式时出错 脚本解释器错误,第1行,第13列:Java类“com.ibm.xsp.extlib.jdbc.model.JdbcRowSetAccessor”中的未知成员“rollback”

JavaScript代码

1:jdbcRowSet1.rollback()

有人试过这个吗


谢谢,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谢谢,是的,我想重新加载页面()会起作用,有点像锤子一样……感谢您的反馈!