gic06123
路人甲
路人甲
  • 注册日期2004-10-27
  • 发帖数29
  • QQ342494838
  • 铜币240枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:3441回复:14

[求助]为何删掉一个多边形后图层文件损坏了

楼主#
更多 发布于:2005-04-15 10:41
<P>在vb 下,我用mo地以下语句删掉图层中的多边形之后,shape文件便损坏了,Arcview打不开,说有错误,用visualfoxpro 打开dbf文件也打不开,说不是一个表。请问有没有人知道是什么问题。谢谢!!!</P>
<P>recordset.Edit
recordset.Delete
recordset.MoveNext
recordset.StopEditing</P>
喜欢0 评分0
amber
路人甲
路人甲
  • 注册日期2005-01-24
  • 发帖数26
  • QQ
  • 铜币243枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2005-07-04 10:40
<P>我也遇到这种情况了。</P>
<P>有4万多条记录的多边形shp文件,执行删除操作(和楼主的代码一样)后和楼主描述的情况一样,dbf文件用vf打开就会显示“Not a Table!”</P>
<P>我也不知道怎么解决!</P>
举报 回复(0) 喜欢(0)     评分
gic06123
路人甲
路人甲
  • 注册日期2004-10-27
  • 发帖数29
  • QQ342494838
  • 铜币240枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2005-07-03 09:24
<P>顶</P>
举报 回复(0) 喜欢(0)     评分
gic06123
路人甲
路人甲
  • 注册日期2004-10-27
  • 发帖数29
  • QQ342494838
  • 铜币240枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2005-06-22 18:21
没人看,顶一下再。
举报 回复(0) 喜欢(0)     评分
gic06123
路人甲
路人甲
  • 注册日期2004-10-27
  • 发帖数29
  • QQ342494838
  • 铜币240枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2005-06-22 18:19
<P>没人看,在顶一下。</P>
举报 回复(0) 喜欢(0)     评分
gic06123
路人甲
路人甲
  • 注册日期2004-10-27
  • 发帖数29
  • QQ342494838
  • 铜币240枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2005-06-14 16:24
<P>没人看,再顶一下</P>
举报 回复(0) 喜欢(0)     评分
gic06123
路人甲
路人甲
  • 注册日期2004-10-27
  • 发帖数29
  • QQ342494838
  • 铜币240枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2005-06-12 20:24
<P>我个人认为上述情况是由于图层中记录地FeatureId属性或shape.valueasstring属性有重复导致的,但不知怎么解决,请有经验地朋友指点。</P>
举报 回复(0) 喜欢(0)     评分
gic06123
路人甲
路人甲
  • 注册日期2004-10-27
  • 发帖数29
  • QQ342494838
  • 铜币240枚
  • 威望0点
  • 贡献值0点
  • 银元0个
7楼#
发布于: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>
举报 回复(0) 喜欢(0)     评分
gic06123
路人甲
路人甲
  • 注册日期2004-10-27
  • 发帖数29
  • QQ342494838
  • 铜币240枚
  • 威望0点
  • 贡献值0点
  • 银元0个
8楼#
发布于:2005-06-04 17:19
<P>谢谢<img src="images/post/smile/dvbbs/em04.gif" />,谢谢各位地指点,可是7楼地朋友说的数据挂接是什么意思,能不能说的在详细一些,或留下qq交流一下,谢谢</P>
举报 回复(0) 喜欢(0)     评分
zchang81
路人甲
路人甲
  • 注册日期2005-05-11
  • 发帖数95
  • QQ
  • 铜币324枚
  • 威望0点
  • 贡献值0点
  • 银元0个
9楼#
发布于:2005-06-03 09:29
<P>你的地图数据有没有挂接属性数据?</P>
<P>你必须要显示其他的代码,才可以知道为什么?</P>
举报 回复(0) 喜欢(0)     评分
上一页
游客

返回顶部