在向Table、FeatureClass 中添加记录的时候有几种可供选用的插入方
2014-12-09 21:23
253 查看
个人补充:字段必须有一个是OID 类型的。 内容摘要 |
在向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() 进行一次数据库插入 此时不会相应事件 |
相关文章推荐
- 【20090312-02】插入和删除Featureclass中feature的几种方法(VB.Net源码)【转载】
- [jQuery] 为table各行添加不同颜色的class
- 往数据库添加的时候(只添加以前未添加的记录的写法)c#
- iOS8 之后tableview的delegate中新增加的代理方法,可以在滑动的时候添加多个按钮。
- 在幼儿园管理系统中,会议管理>申请会议模块:添加会议记录(提交表单)的时候报:404错误!
- 解决不能删除arcsde数据源的featureclass和table的方法
- dwz 的td添加table(class="list")
- MYSQL建立外键失败几种情况记录Can't create table不能创建表
- 两个小技巧:vo查询所有记录数和adf中grid像table中一样自动添加行
- AE CreateFeatureClass 创建shp. 删除shp. 向shp中添加要素
- MYSQL建立外键失败几种情况记录Can’t create table。。。。
- 添加SHP文件到SDE中指定FeatureClass中(方法二)
- 添加SHP文件到SDE中指定FeatureClass中(方法一)
- 关于Tableview头部添加图片或者其他东西的时候
- IrfTable 添加记录的时候 insert append的区别
- table-内存Featureclass-real FeatureClass
- MYSQL建立外键失败几种情况记录Can't create table不能创建表
- AO中Table,ObjectClass,和FeatureClass的区别
- Error: Failed to create feature class. Table already registered
- AE CreateFeatureClass 创建shp. 删除shp. 向shp中添加要素