📄 cfeaturestore.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 + -