2012-02-09 36 views
0

我一直在努力一点,以便使用853扩展库中的JDBC从XPages更新和删除DB2中的记录。在XPages中不能与DB2一起使用的更新和删除

首先,我可以确认@JDBCInsert完美工作。我也可以用许多不同的方式查看来自DB2的数据。但是,尝试执行更新或删除时,它不起作用。

我的第一次尝试是使用JDBCRowSet数据源。这里的想法是使用缓存结果集,然后最终将更改提交到DB2。我能够操纵缓存结果通过修改值,并执行删除设置,但是当我运行dataset.acceptChanges()函数,收到以下消息:

错误调用方法“在acceptChanges()”上的Java类'com.ibm.xsp.extlib.jdbc.model.JdbcRowSetAccessor'

从Log另一条消息是:

DB2 SQL错误:SQLCODE = -270,SQLSTATE = 42997,则sqlerrmc = 53,DRIVER = 3.57.82

我是以管理员身份登录到DB2,因此它不能成为访问问题,特别是因为我可以插入记录。我尝试使用连接管理器控制并设置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);

//我用这个试图提交使用行集,它返回上述错误消息

JDBCRowSet.acceptChanges()中的更改时;

我已经花了相当多的时间用这个,现在我的脑海里浮现出来。

请帮忙。 提前感谢您。

回答

0

我还没有给内线LIB一试的这部分,但是我也注意到你的语法是不同于我记得,看来是这样的:

@JdbcUpdate("dt2","users",v,"id=?",id) 
就本文档

http://library.constantcontact.com/download/get/file/1102786224071-334/2011NOV18+XPages+Goes+Relational.pdf

+0

嗨。我会在星期一检查一下。非常感谢您的反馈。 – 2012-02-10 08:59:42

+0

谢谢。我错过了? – 2012-02-17 05:20:41

+0

很高兴解决。 – 2012-02-22 15:11:10