⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cfeaturestore.cls

📁 GeoStar 空间对象的创建
💻 CLS
字号:
VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "CFeatureStore"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit

'*********************************************************************************
'** 函数名:AddFeature
'** 输  入:
'** 输  出:
'** 功能描述:非事务态增加一个地物
'** 全局变量:
'** 调用模块:
'** 作  者:yubo
'** 日 期:2005-11-04
'** 修改者:yubo
'** 日 期:2005-11-04
'** 版  本:1.0
'*********************************************************************************
Public Sub AddFeature()
On Error GoTo del
    Dim fea As IFeature
    If (newfeacls Is Nothing) Then
        '打开地物类
        Set newfeacls = pDatabase.openFeatureClass("点test_P1")
    End If
    '创建地物
    Set fea = newfeacls.CreateFeature
    '给除OID字段外的其他字段赋值
    fea.Value(2) = 10
    fea.Value(3) = 12232
    fea.Value(4) = CSng(12345.11)
    fea.Value(5) = CDbl(12345.1101)
    fea.Value(6) = "abcba"
    Dim b(10) As Byte
    Dim i As Long
    For i = LBound(b) To UBound(b)
        b(i) = 65 + i
    Next
    Dim varb
    varb = b
    fea.Value(7) = varb
    fea.Value(9) = varb

    fea.Value(8) = CDate("1987-1-12 13:12:22")
    Dim geom As IGeometry
    Dim geomser As IGeometrySerial
    Dim p As New Point
    Dim varcoord As Variant, varinter As Variant
    Dim dimen As Long
    dimen = 2
    Dim lcoord(1) As Double, linter(2) As Long
    linter(0) = 1
    linter(1) = 1
    linter(2) = 1
    lcoord(0) = 1050820.6
    lcoord(1) = 4308250.5
    varcoord = lcoord
    varinter = linter
    Set geomser = p
    geomser.ImportFromOracle varcoord, varinter, dimen
    Set geom = geomser
    Set fea.Geometry = geom
    '保存地物
    fea.Store

    Set geom = Nothing
    Set geomser = Nothing
    Set fea = Nothing
    Exit Sub
del:
    MsgBox "点地物数据保存失败!"
End Sub


'*********************************************************************************
'** 函数名:AddFeature2
'** 输  入:
'** 输  出:
'** 功能描述:编辑态增加一个地物
'** 全局变量:
'** 调用模块:
'** 作  者:yubo
'** 日 期:2005-11-04
'** 修改者:yubo
'** 日 期:2005-11-04
'** 版  本:1.0
'*********************************************************************************
Public Sub AddFeature2()
    Dim igeoDBEdit As GeoStarCore.IGeoDatabaseEdit
    Set igeoDBEdit = pDatabase
    '开始编辑
    igeoDBEdit.StartEdit
    '在编辑态可以进行Undo和Redo操作,增加一个地物不会直接保存到地物类的数据表中,必须保存编辑或结束编辑
    AddFeature
    '保存当前编辑
    igeoDBEdit.Save
    '此时已经保存了新增地物,并不能对保存前的操作进行Undo和Redo,当前仍处于编辑态
    
    '结束并保存编辑
    igeoDBEdit.EndEdit True
End Sub


'*********************************************************************************
'** 函数名:AddFeature3
'** 输  入:
'** 输  出:
'** 功能描述:事务态非编辑态增加一个地物
'** 全局变量:
'** 调用模块:
'** 作  者:yubo
'** 日 期:2005-11-04
'** 修改者:yubo
'** 日 期:2005-11-04
'** 版  本:1.0
'*********************************************************************************
Public Sub AddFeature3()
    Dim igeoTran As GeoStarCore.ITransactions
    Set igeoTran = pDatabase
    '开始事务
    igeoTran.StartTransaction
    '在普通事务态增加一个地物,直到提交事务时才会将所增加的地物提交到数据库中
    AddFeature
    '提交事务,提交事务后才将数据进行保存
    igeoTran.CommitTransaction
    '回滚事务调用RollbackTransaction方法,回滚事务后事务内的所有修改都不会保存
End Sub



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -