Hello,
We have a simple code for selecting features based on attribute query using IFeatureSelection. However, it throws COMexception at the line where it selects the features. Error is Exception from HRESULT: 0x80041538.
Initially I suspected that problem would be with the syntax of the where clause, but even simpler where clauses like "OBJECTID = 500'" also throw error. I have confirmed that the features being queried actually exist in the feature class.Error screenshot is attached here.
Code:
Public Sub LayerSelectFeatures(ByRef pFlayer As IFeatureLayer, ByVal strFWhereClause As String, ByVal enumSelectionResult As esriSelectionResultEnum) Try Dim pMxDoc As IMxDocument pMxDoc = g_pApp.Document Dim pMap As IMap pMap = pMxDoc.FocusMap Dim pActiveView As IActiveView pActiveView = pMap Dim pQueryFilter As IQueryFilter pQueryFilter = New QueryFilterClass pQueryFilter.WhereClause = strFWhereClause Dim pLayerSelection As IFeatureSelection pLayerSelection = TryCast(pFlayer, ESRI.ArcGIS.Carto.IFeatureSelection) pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, Nothing, Nothing) pLayerSelection.SelectFeatures(pQueryFilter, esriSelectionResultEnum.esriSelectionResultAdd, False) 'Erractic Line pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, Nothing, Nothing) System.Runtime.InteropServices.Marshal.ReleaseComObject(pQueryFilter) pQueryFilter = Nothing Catch ex As Exception End Try End Sub
ArcMap Version : 10.2.1
Database: SDE on Oracle 11 g
Language : VB.Net
I would appreciate if I can get help to fix this issue.
PS: When I use esriSelectionResultNew instead of esriSelectionResultAdd, it works.
Thanks.