阅读:3440回复:14
[求助]为何删掉一个多边形后图层文件损坏了
<P>在vb 下,我用mo地以下语句删掉图层中的多边形之后,shape文件便损坏了,Arcview打不开,说有错误,用visualfoxpro 打开dbf文件也打不开,说不是一个表。请问有没有人知道是什么问题。谢谢!!!</P>
<P>recordset.Edit recordset.Delete recordset.MoveNext recordset.StopEditing</P> |
|
1楼#
发布于:2005-04-17 21:17
<P>有没有人支持一下 help!!!!</P>
|
|
2楼#
发布于:2005-04-18 09:39
<img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" />
|
|
|
3楼#
发布于:2005-04-22 10:35
没人知道是为了什么嘛?版主知道嘛?
|
|
4楼#
发布于:2005-04-28 10:10
还是没人回答,是不是我来晚了。
|
|
5楼#
发布于:2005-06-01 14:52
<P>你的数据有多少?如果是超过10w很可能就会出现这样的情况。</P>
|
|
|
6楼#
发布于:2005-06-03 09:29
<P>你的地图数据有没有挂接属性数据?</P>
<P>你必须要显示其他的代码,才可以知道为什么?</P> |
|
7楼#
发布于:2005-06-04 17:19
<P>谢谢<img src="images/post/smile/dvbbs/em04.gif" />,谢谢各位地指点,可是7楼地朋友说的数据挂接是什么意思,能不能说的在详细一些,或留下qq交流一下,谢谢</P>
|
|
8楼#
发布于:2005-06-12 20:19
<P>其实我的数据既没有超过十万条也没有挂接其它属性数据,就是用MapObject或ArcView提供的samples中的数据也会有以上问题,难道大家就从来没有碰到过嘛???</P>
<P>我试过,只要你用一个map1控件将MapObjects2.1\Samples\data\mexico\states.shp 文件加人,使用以上代码删掉几个多边形,你就会发现你每删一次,shp层上少一个多边形,而相应地dbf库中却会减少两条记录(用ADO连到一个DATAGRID控件中就会发现),这样导致多删几次之后,图层上还有多边形(map控件上显示地),而属性库中已没有记录,程序就会报错。如果从此图层中删掉几个多边形之后,这个图层在arcview中就打不开啦,dbf文件用vf也打不开。不信你试试。</P> <P>从来没人发现过和我类似地问题嘛???</P> <P>代码:在窗体上加map、adodc、datagrid、command控件先,然后在map属性中add图层states.shp.</P> <P>Private Sub Command1_Click()<BR> Set recs = Map1.Layers(0).Records<BR> recs.Edit<BR> recs.Delete<BR> recs.MoveNext<BR> recs.StopEditing<BR> Map1.Refresh <BR> Adodc1.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;Extended Properties=DSN=Visual FoxPro Database;UID=;SourceDB=" ; App.path ; "\temp2\;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes"</P> <P><BR> Adodc1.RecordSource = Map1.Layers(0).Name</P> <P> Adodc1.CommandType = adCmdTable<BR> Adodc1.Refresh<BR> Set DataGrid1.DataSource = Adodc1'''''''''''''''''''将dbf文件绑定到datagrid上<BR> DataGrid1.Refresh<BR>End Sub</P> <P>不要按得太快,程序需要一定时间反应。</P> |
|
9楼#
发布于:2005-06-12 20:24
<P>我个人认为上述情况是由于图层中记录地FeatureId属性或shape.valueasstring属性有重复导致的,但不知怎么解决,请有经验地朋友指点。</P>
|
|
上一页
下一页