|
阅读:1256回复:2
删除GeoDadabase中数据的问题
<P>我想删除一个GeoDatabase中的数据,但是没有删除掉,该如何处理呢?谢谢了。</P>
<P>我的代码如下。</P> <P> ITablePtr ipTable = GetGeoTable(lpTableName);//可以获取到该指针</P> <P>方法一:</P> <P> IQueryFilterPtr ipQueryFilter(CLSID_QueryFilter);<BR> ipQueryFilter->put_WhereClause((_bstr_t)lpFilter);<BR> <BR> ipTable->DeleteSearchedRows(ipQueryFilter);</P> <P>方法二:</P> <P> ICursorPtr ipCursor;<BR> ipTable->Update(ipQueryFilter,VARIANT_FALSE,;ipCursor);<BR> <BR> IRowPtr ipRow;<BR> ipCursor->NextRow(;ipRow);<BR> while (ipRow != NULL)<BR> {<BR> HRESULT hr = ipCursor->DeleteRow();</P> <P> // 或者 HRESULT hr = ipRow->Delete();<BR> <BR> HRESULT hr2 = ipCursor->NextRow(;ipRow);<BR> }<BR></P> <P>下次再对Table查询的时候还有该记录。<BR><BR></P> |
|
|
1楼#
发布于:2005-09-06 15:46
<P>谢谢你!我这里对一个Feature进行操作的时候也是可以的。</P>
<P>对Table 操作时提示The Requested operation is invaliad on a closed state.</P> <P>还没有找到原因。:(</P> |
|
|
2楼#
发布于:2005-09-06 11:37
<P>这是VB中删除要素的例子,希望对你能有所帮助:</P>
<P> Dim pWorkspaceEdit As IWorkspaceEdit<BR> Dim pFeature As IFeature<BR> Dim pActiveView As IActiveView<BR> <BR> On Error GoTo DeleteSelectedFeatures_err<BR> <BR> If m_pCurrentLayer Is Nothing Then Exit Sub<BR> <BR> ' If there are no features currently selected then nothing to do<BR> Set pFeatureCursor = GetSelectedFeatures<BR> If pFeatureCursor Is Nothing Then Exit Sub</P> <P>' m_pMap.ClearSelection</P> <P> ' Loop over the selected features deleting each in turn<BR> Set pWorkspaceEdit = GetWorkspaceEdit<BR> pWorkspaceEdit.StartEditOperation<BR> Set pFeature = pFeatureCursor.NextFeature<BR> While Not pFeature Is Nothing<BR> pFeature.Delete<BR> Set pFeature = pFeatureCursor.NextFeature<BR> Wend<BR> pWorkspaceEdit.StopEditOperation<BR></P> |
|