hangc 发表于 2005-7-27 11:40:00

高级问题:cad与数据库一致性问题?希望高手都进来讨论!

<P>&nbsp;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; 通常在针对cad二次开发中总少不了要使用数据库,哪怕是Access,使用数据库的好处我想不必多论述,问题主要出现在一致性维护上,如:在cad中添加高程点,同时在数据库中添加高程点坐标和点号信息;在cad中画公路,同时在数据库中存放公路等级,中线坐标等;</P>
<P>&nbsp;&nbsp;&nbsp; 问题:数据库提交时间一般在添加修改完成后即提交,但是cad图形的保存一般滞后,如在退出cad时,或则再用户点击保存时;那么如果用户退出时不保存、或则突然断电,那么实际上数据库将所有的操作保留下来了,但cad图形并未保存,这样就形成了严重后果,破坏了图数一致性!</P>
<P>&nbsp;&nbsp;&nbsp; 希望各位高手共同出谋划策,如果解决了这个问题,cad的使用就上了一个台阶了!!!</P>
<P></P>

雪山飞狐_lzh 发表于 2005-7-27 11:42:00

<P>把数据先存储到字典对象里,保存的时候再刷数据库</P>

zhuxuhong 发表于 2005-7-27 13:18:00

<DIV>我通过单独设置一个刷新功能来实现的,通过下面两步:</DIV>
<DIV>1)通过图形检查数据库</DIV>
<DIV>2)通过数据库检查图形</DIV>
<DIV>效果不错</DIV>

今晚打老虎 发表于 2005-7-27 17:23:00

数据库中以图形的Handle作为PK,读写信息的时候进行检测。

hangc 发表于 2005-7-28 00:09:00

<P>非常感谢各位老兄的参与,但是我假设一下具体情况,看是否存在问题:</P>
<P>地质钻孔和地质连线问题,我们首先在图上设计单个钻孔,描述地质构造情况,然后再根据各钻孔之间的关系连接地质连线,如果在保存的时候才刷新数据库的话,钻孔信息在数据库中实际上还没有,所以就不能连线了。</P>
<P>问题:如果设计的数据之间需要互相引用的话,必须确保数据库与图形同步一致。</P>
<P>雪山飞狐兄的方法很不错,如果能加以完善的话就很好了!</P>
<P><A name=47812><FONT color=#000066><B>zhuxuhong</B></FONT></A>兄的方法正是我现在使用的方法,但这种方法的使用给人一种不安全感,因为通过互相检查将出现大量不对应问题,删除那一方都会让用户感觉工作的不稳定性。</P>
<P><A name=47930><FONT color=#000066><B>今晚打老虎</B></FONT></A>兄的方法实际和<A name=47812><FONT color=#000066><B>zhuxuhong</B></FONT></A>兄方法一致,图数互查实际上就是通过元素Handle+图幅id作为pk来实现的!</P>
<P>问题:如果设计的数据之间需要互相引用的话,必须确保数据库与图形同步一致。</P>
<P>希望大家再继续讨论,争取能寻找到更加优秀的解决策略!</P>

hangc 发表于 2005-7-30 09:35:00

<P>还有没有vba高手,请出招?</P>

hangc 发表于 2005-7-30 23:11:00

又来转了一圈!

ishou 发表于 2005-7-30 23:15:00

<P>可以考虑把ACAD图元等信息一起存入数据库,下次启动ACAD时从数据库中提取ACAD图元信息再现ACAD图(而不是从DWG文档中打开)。</P>
<P>&nbsp;</P>

hangc 发表于 2005-8-1 11:38:00

8楼也是一种好的思路,但这只能对设计结果进行管理,设计过程中的同步问题还是不能解决,除非acad提供类似arc gis的 sde,可以将实体空间化。而且这种策略可能仅适用于Oracle,其他数据库在如果有1万幅图后的提取速度将是不能忍受的!

czlj2008 发表于 2005-8-6 08:00:00

对于测绘来说,高程具有时间与高程的系统的概念,我们在使用高程成果时都会标注“xxxxx高程系,xxxx年xxxxxx市高程成果“的
页: [1]
查看完整版本: 高级问题:cad与数据库一致性问题?希望高手都进来讨论!