使用AO新增记录的3种方法

内容摘要
在向Table、FeatureClass 中添加记录的时候有几种可供选用的插入方法
他们在不同的使用环境中效率不同……
过程描述
-------------
1 Store 方法
使用IRow、IFeature 的Store
由ITable 或 IFeatureClass 的 CreateRow() CreateFeature() 方法先创建对象经赋值操作后调用 Store
此方法在各种环境中速度均较低 但其获得的信息相对最全 适用于经UI交互产生的数据对象
a)在CreateRow() 时进行一次数据库访问 [insert]
b)创建之后已Row中已返回 OID 值
c)其他字段赋值之后调用Store 进行第二次数据库访问 [updata] 此时激发 Row对象的 onChange等事件调用
--------------
2 WriteRow方法
使用ITableWrite.WriteRow() 或 IFeatureClassWrite.WriteFeature()
由ITable 或 IFeatureClass 的 CreateRow() CreateFeature() 方法先创建对象
经赋值操作后调用 ITable.WriteRow() 或 IFeatureClass.WriteFeature()
此方法调用ITableWrite这类较底层的接口 区别在于在写入数据时不会激发相应事件
在对象不影响网络拓扑结构的前提下写入几何网络图层数据速度较快
a)在CreateRow() 时进行一次数据库访问 [insert]
b)创建之后已Row中已返回 OID 值
c)其他字段赋值之后调用Store 进行第二次数据库访问 [updata] 此时不激发事件

-----------------
3 Insert Buffer
使用ITable.CreateRowBuffer() 或 IFeatureClass.CreateFeatureBuffer()创建内存对象
由IFeatureCursor.InsertFeature()写入只访问一次数据库速度较快 但是内存对象在写入前
OID=-1 适用于批量写入简单要素
a)在CreateRowBuffer() 创建内存对象
b)创建之后已Row中OID = -1
c)其他字段赋值之后调用ICursor.Insert() 进行一次数据库插入 此时不会相应事件
from: http://www.cnblogs.com/njlhb/archive/2007/10/21/932337.html

转载于:https://www.cnblogs.com/gentlewolf/archive/2007/11/19/963701.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值