首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JTOpen读取AS400上的数据区时,数据区对象是否会被锁定?

使用JTOpen读取AS400上的数据区时,数据区对象是否会被锁定?
EN

Stack Overflow用户
提问于 2013-04-06 03:34:44
回答 2查看 2.5K关注 0票数 2

给定来自JTOpen的DecimalDataArea,当读取和写入数据区时,AS400上的对象是否会被锁定,从而阻止AS400上的其他应用程序同时向其写入数据?

这是javadoc中关于如何读/写等的示例代码。

代码语言:javascript
复制
// Prepare to work with the system named "My400".
AS400 system = new AS400("My400");

// Create a DecimalDataArea object.
QSYSObjectPathName path = new QSYSObjectPathName("MYLIB", "MYDATA", "DTAARA");
DecimalDataArea dataArea = new DecimalDataArea(system, path.getPath());

// Create the decimal data area on the system using default values.
dataArea.create();

// Clear the data area.
dataArea.clear();

// Write to the data area.
dataArea.write(new BigDecimal("1.2"));

// Read from the data area.
BigDecimal data = dataArea.read();

// Delete the data area from the system.
dataArea.delete();

http://javadoc.midrange.com/jtopen/com/ibm/as400/access/DecimalDataArea.html

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-06 03:47:12

不..。数据区域操作是原子操作,因此除非您自己执行锁定操作,否则不会发生锁定。

在内部,实现实际上使用CHGDTAARA来更新数据区域。

不过,这是一个不错的增强。

票数 3
EN

Stack Overflow用户

发布于 2013-04-06 09:37:08

如果您使用SQL create SEQUENCE语句创建数据,那么您可以通过JDBC使用NEXT VALUE。您可以在SQL语句中使用下一个值表达式,如SELECT、INSERT、UPDATE等。它将读取值、递增该值、更新序列并将新值返回给您,并且可以在提交控制下完成。上一个值表达式将返回在当前会话期间由该序列的下一个值表达式生成的最后一个值。

通常,数字数据区域用于管理一系列数字的生成。如果这里是这种情况,那么使用序列会更好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15842081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档