ArcSDE SDK Java 快速实践 6

本文详细介绍了ArcSDE图层锁中的SE_READ_LOCK和SE_WRITE_LOCK两种类型的使用方法及作用。SE_READ_LOCK用于防止数据被更新,允许多个读锁存在;SE_WRITE_LOCK则禁止所有用户对数据进行任何操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

I. 图层锁

· 图层锁的类型和作用

ArcSDE图层中定义了两种锁,SE_READ_LOCK和SE_WRITE_LOCK。锁影响的范围可以是整个图层或者是图层中的某个范围。

当数据以SE_READ_LOCK的方式锁住以后,这部分数据就被保护起来以防止被更新。其它用户也可以在相同的数据上建立SE_READ_LOCK锁,但是不能再加SE_WRITE_LOCK锁或者更新数据。

当数据以SE_WRITE_LOCK的方式锁住以后,这部分数据不但不能被其它用户更新,而且其它用户也不能再在相同的数据上加任何锁。

由此也可以推出,如果在图层上以SE_READ_LOCK方式锁定的数据互相是可以有重叠的,而以SE_WRITE_LOCK方式锁定的数据是不能相互重叠的。

· 使用锁

以下的代码显示了如何在图层上添加和释放锁:

SeConnection conn = getConn();

if (conn != null) {

try {

SeLayer layer = new SeLayer(conn, "SDE_CITIES", "SHAPE");

layer.lock(SeLayer.SE_READ_LOCK);// 以SE_READ_LOCK方式锁定整个图层

layer.freeLock();

layer.lock(SeLayer.SE_WRITE_LOCK);// 以SE_WRITE_LOCK方式锁定整个图层

layer.freeLock();

layer.lockArea(SeLayer.SE_READ_LOCK, new SeExtent(-116, 39,

117, 40));// 以SE_READ_LOCK方式锁定部分数据

layer.freeLock();

} catch (SeException e) {

e.printStackTrace();

} finally {

try {

conn.close();

} catch (SeException e) {

e.printStackTrace();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值