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

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

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

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

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

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

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

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

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

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

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

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

还有没有vba高手,请出招?

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

又来转了一圈!

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

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

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与数据库一致性问题?希望高手都进来讨论!