我一直在努力使用853 Extension Library中的JDBC从XPages更新和删除DB2中的记录。
首先,我可以确认@JDBCInsert完美无缺。我还可以通过许多不同的方式查看来自DB2的数据。但是,在尝试执行更新或删除时,它只是不起作用。
我的第一次尝试是使用JDBCRowSet数据源。这里的想法是使用缓存结果集,然后最后将更改提交给DB2。我能够通过修改值和执行删除来操作缓存结果集,但是当我运行dataset.acceptChanges()函数时,我收到以下消息:
在java类'com.ibm.xsp.extlib.jdbc.model.JdbcRowSetAccessor'
上调用方法'acceptChanges()'时出错日志中的另一条消息是:
DB2 SQL错误:SQLCODE = -270,SQLSTATE = 42997,SQLERRMC = 53,DRIVER = 3.57.82
我以管理员身份登录DB2,因此它不能成为访问问题,特别是因为我可以插入记录。我尝试使用Connection Manager Control并设置AutoCommit = true,但这不会更改返回的错误。
因此,我的下一次尝试是使用@JDBCUpdate执行更新,而不是使用缓存的结果集。此功能不起作用,但也不返回错误。它几乎就像什么也没做。
最后,我尝试使用@JDBCExecuteQuery来执行更新,但是我收到一条消息,说我不允许使用此函数执行更新。
以下是我尝试失败的一些例子:
//以下是我要更改的值,我将其解析为JSON。
var v = {
VENUE_NAME: getComponent("inputVenue").getValue(),
ADDRESS: getComponent("inputTextareaAddress").getValue(),
TEL_NUMBER: getComponent("inputTelNumber").getValue(),
CELL_NUMBER: getComponent("inputCellNumber").getValue(),
EMAIL: getComponent("inputEmail").getValue(),
RATE: getComponent("inputRate").getValue(),
INCLUDES: getComponent("checkIncludes").getValue()
}
@JdbcUpdate(“db2”,“TABLE”,v,“ID = 123”);
@JdbcUpdate(“db2”,“TABLE”,v,“ID ='123'”);
//此插入函数使用相同的JSON数组。
@JdbcInsert( “DB2”, “TABLE”,V);
//尝试使用RowSet提交更改时使用此方法,返回上述错误消息
JDBCRowSet.acceptChanges();
我花了很多时间来做这件事,现在我的思绪很难理解。
请帮忙。 提前感谢你。
答案 0 :(得分:0)
我还没有试一试ext lib的这一部分,但是我注意到你的语法与我记忆的不同,它看起来像这样:
@JdbcUpdate("dt2","users",v,"id=?",id)
在此文档上。