阅读:1482回复:3
更新TABLE中的字段值后,再store时,发生错误,请大家帮忙?
Public Sub AddTable<I>value</I>()
Dim paaSet As IPropertySet Set paaSet = New PropertySet With paaSet .SetProperty "SERVER", "gis" .SetProperty "INSTANCE", "5151/tcp" .SetProperty "DATABASE", "sde" .SetProperty "USER", "sa" .SetProperty "PASSWORD", "sa" .SetProperty "VERSION", "sde.default" End With Dim pWorkspaceFactory As IWorkspaceFactory Set pWorkspaceFactory = New SdeWorkspaceFactory Dim pWorkspace As IWorkspace Set pWorkspace = pWorkspaceFactory.Open(paaSet, 0) Dim pTable As ITable Dim pFeatureWorkspace As IFeatureWorkspace Set pFeatureWorkspace = pWorkspace Set pTable = pFeatureWorkspace.OpenTable("综合数据") If pTable Is Nothing Then Exit Sub Dim pCursor As ICursor Set pCursor = pTable.Search(Nothing, False) Dim pRow As IRow Set pRow = pCursor.NextRow Do While Not pRow Is Nothing With pRow.Fields pRow.<I>value</I>(.FindField("统一编号")) = pRow.<I>value</I>(.FindField("编号")) End With pRow.Store '///////////////////////////程序在这儿遇到了错误,大家能不能给个建议? Set pRow = pCursor.NextRow Loop MsgBox "操作成功" End Sub <P> 谢谢 </P> |
|
|
1楼#
发布于:2004-08-27 10:29
<P>呵,工作空间没有处于可编辑状态</P><P>要用IworkspaceEdit这个东东来StartEditing和StartEditOperate才可以编辑的。</P><P> Set pCursor = pTable.Search(Nothing, False)</P><P>这句可换成</P><P>Set pCursor = pTable.Update(Nothing, False)
</P> |
|
2楼#
发布于:2004-08-30 09:44
<P>楼上的应该没错。</P><P>Cursor对象有三种类型</P><P>Cursor对象(包括其子类FeatureCursor)便于在一个对象中可以管理许多记录。Cursor中的记录集的子集可以通过空间条件,属性条件或同时使用这两种条件的过滤来定义。Cursor一旦创建,就可以很方便地循环调用其中的每一条记录。
从Table或Feature产生的Cursor有三种类型。具体是什么类型完全取决于生成Cursor所使用的方法。每种Cursor可用的接口是一样的,具有相同的方法和属性,但如果对于Cursor的类型和你的应用不复的话,调用这些方法时就会返回错误。 一\查询型Cursor 查询型Cursor是通过调用Search方法生成的,用来进行一些不必进行修改记录的操作,一般是一些统计计算,记录数计算或显示。 dim myCursor as IfeatureCursor set myCursor =pFClass.Search(pQFilter,False) 查询型Cursor不能调用诸如InsertRow,DeleteRow或UpdataRow方法。其唯一的方法是NextRow (NextFeature).用于顺序访问Cursor的每条记录。 二\更新型Cursor 更新型Cursor是通过在Table或FeatureClass中调用Updata方法创建的,用于生成Cursor的数据库中更新或删除记录。当然和查询型Cursor一样,都是通过QueryFilter对象生成的。它也使得可以保存所返回的Cursor中的,某些记录或全部记录(Nothing关键字)。更新型Cursor不能调用InsertRow(InsertFeature)方法。 Dim myCursor as IFeatureCursor set myCursor=pFClass.Update(pQFilter,False)</P><P>三\插入型Cursor 通过在在Table或FeatureClass中调用Insert方法创建的。用于向生成Cursor的数据库中插入新的记录(Table中的行,FeatureClass中的要素)。插入型Cursor不需要QueryFilter参数。不支持NextRow(NextFeature)方法,也不支持UpdataRow方法。 Dim myCursor as IFeatureCursor set myCursor=pFClass.Insert(Ture)</P> |
|
3楼#
发布于:2004-08-31 09:21
<P>顶~~~~~~~~~~~~</P>
|
|