zoukankan      html  css  js  c++  java
  • 关于AO插入对象

    关于AO插入对象

    在向TableFeatureClass 中添加记录的时候有几种可供选用的插入方法,他们在不同的使用环境中效率不同……
    1 Store 方法
    使用IRowIFeature 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)
    创建之后已RowOID = -1
    c)
    其他字段赋值之后调用ICursor.Insert() 进行一次数据库插入
    此时不会相应事件





    以上是我在网上搜的.
    在插入对象的时候,比如FeatureClass 都没有问题.但是我插的是我自己的业务表. 这表不是由ARCMAP建的.好像那个OBJECTID他就不能自己去加值.想问下这种问题如何解决.
    也就是:在ARCGIS SERVER中 如何操作自己的业务表.
  • 相关阅读:
    WEB免费打印控件推荐
    json.net 反序列化
    PHP文件显示乱码
    ASP.NET服务开启后Session丢失的解决方法
    phpmyadmin 下载
    phpMyAdmin 错误 缺少 mysqli 扩展。请检查 PHP 配置
    解决IE6IE7下li上下间距
    获取IP地址方法
    Winform中DataGridView的DataGridViewCheckBoxColumn使用方法(选中与选不中)
    IIS配置PHP5.3配置完成后FastCGI Error14001 (0x800736b1)___解决方法
  • 原文地址:https://www.cnblogs.com/xianyin05/p/3022591.html
Copyright © 2011-2022 走看看