明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2160|回复: 9

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

[复制链接]
发表于 2005-7-27 11:40:00 | 显示全部楼层 |阅读模式

 

     通常在针对cad二次开发中总少不了要使用数据库,哪怕是Access,使用数据库的好处我想不必多论述,问题主要出现在一致性维护上,如:在cad中添加高程点,同时在数据库中添加高程点坐标和点号信息;在cad中画公路,同时在数据库中存放公路等级,中线坐标等;

    问题:数据库提交时间一般在添加修改完成后即提交,但是cad图形的保存一般滞后,如在退出cad时,或则再用户点击保存时;那么如果用户退出时不保存、或则突然断电,那么实际上数据库将所有的操作保留下来了,但cad图形并未保存,这样就形成了严重后果,破坏了图数一致性!

    希望各位高手共同出谋划策,如果解决了这个问题,cad的使用就上了一个台阶了!!!

发表于 2005-7-27 11:42:00 | 显示全部楼层

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

发表于 2005-7-27 13:18:00 | 显示全部楼层
我通过单独设置一个刷新功能来实现的,通过下面两步:
1)通过图形检查数据库
2)通过数据库检查图形
效果不错
发表于 2005-7-27 17:23:00 | 显示全部楼层
数据库中以图形的Handle作为PK,读写信息的时候进行检测。
 楼主| 发表于 2005-7-28 00:09:00 | 显示全部楼层

非常感谢各位老兄的参与,但是我假设一下具体情况,看是否存在问题:

地质钻孔和地质连线问题,我们首先在图上设计单个钻孔,描述地质构造情况,然后再根据各钻孔之间的关系连接地质连线,如果在保存的时候才刷新数据库的话,钻孔信息在数据库中实际上还没有,所以就不能连线了。

问题:如果设计的数据之间需要互相引用的话,必须确保数据库与图形同步一致。

雪山飞狐兄的方法很不错,如果能加以完善的话就很好了!

zhuxuhong兄的方法正是我现在使用的方法,但这种方法的使用给人一种不安全感,因为通过互相检查将出现大量不对应问题,删除那一方都会让用户感觉工作的不稳定性。

今晚打老虎兄的方法实际和zhuxuhong兄方法一致,图数互查实际上就是通过元素Handle+图幅id作为pk来实现的!

问题:如果设计的数据之间需要互相引用的话,必须确保数据库与图形同步一致。

希望大家再继续讨论,争取能寻找到更加优秀的解决策略!

 楼主| 发表于 2005-7-30 09:35:00 | 显示全部楼层

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

 楼主| 发表于 2005-7-30 23:11:00 | 显示全部楼层
又来转了一圈!
发表于 2005-7-30 23:15:00 | 显示全部楼层

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

 

 楼主| 发表于 2005-8-1 11:38:00 | 显示全部楼层
8楼也是一种好的思路,但这只能对设计结果进行管理,设计过程中的同步问题还是不能解决,除非acad提供类似arc gis的 sde,可以将实体空间化。而且这种策略可能仅适用于Oracle,其他数据库在如果有1万幅图后的提取速度将是不能忍受的!
发表于 2005-8-6 08:00:00 | 显示全部楼层
对于测绘来说,高程具有时间与高程的系统的概念,我们在使用高程成果时都会标注“xxxxx高程系,xxxx年xxxxxx市高程成果“的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-27 12:30 , Processed in 0.191707 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表