阅读:2118回复:4
[求助]请各位帮我看一下下面这段代码,看错在哪里?
<P>请各位帮我看一下下面这段代码,看错在哪里?</P>
<P>我是通过在文本框中输入FID的值来查询地图的.(打开的只有一个图层)</P> <P>运行到pFeatureSelection.SelectFeatures pQueryFilter, esriSelectionResultNew, True这一句就出错了,请各位解答一下,谢谢!</P> <P> Dim pFeatureLayer As IFeatureLayer<BR> Set pFeatureLayer = frmMain.MapControl1.Layer(0)<BR> ' pFeatureLayer.name = frmMain.MapControl1.Layer(0).name</P> <P>'生成查询的SQL语句<BR> Dim sQuery As String<BR> sQuery = "FID ='" ; txtQuery.Text ; "'"<BR>'根据SQL语句生成查询过滤条件<BR> Dim pQueryFilter As IQueryFilter<BR> Set pQueryFilter = New QueryFilter<BR> pQueryFilter.WhereClause = sQuery<BR>'对当前的图层进行查询<BR> Dim pFeatureSelection As IFeatureSelection<BR> Set pFeatureSelection = pFeatureLayer<BR> pFeatureSelection.SelectFeatures pQueryFilter, esriSelectionResultNew, True<BR>'得到查询结果<BR> Dim pSelectionSet As ISelectionSet<BR> Set pSelectionSet = pFeatureSelection.SelectionSet</P> <P> Dim pFeatureCursor As IFeatureCursor<BR> pSelectionSet.Search Nothing, True, pFeatureCursor<BR> Dim pFeature As IFeature<BR> Set pFeature = pFeatureCursor.NextFeature<BR> If pFeature Is Nothing Then Exit Sub<BR> <BR> frmMain.MapControl1.Extent = pFeature.Shape.envelope</P> <P>出现的错误是:</P> <P>实时错误'-2147467259(80004005)':</P> <P>自动化错误</P> <P>这是什么错误?请各位解答一下.</P> |
|
1楼#
发布于:2006-03-14 08:35
你确认一下,那个字段是不是叫fid,因为shp、geodatabase里面是不一样的,有fid、featureid、objectid,我想是你字段明错了
|
|
|
2楼#
发布于:2006-03-17 17:00
<FONT size=2>FID字段的类型是Object ID,在VB中是Long,查询语句里去掉单引号试试</FONT>
|
|
3楼#
发布于:2006-03-18 18:33
楼上说的正确!<br><br>
|
|
4楼#
发布于:2006-04-11 12:50
谢谢!
|
|