PB中使用AutoCAD图形数据库
青岛市电信局信息产业有限公司 李树爱
在PowerBuilder
开发环境的数据库画笔中,利用MS SQL Server 6.X 连接上后台大型数据库MS
SQL Server 6.5,建包含image 字段dwg 的表housedata,利用该表做一个数据窗口,再插入OLE
blob 类型的控件,选择Autocad Drawing 类型。
新建一窗口,放置一个OLE
控件和一个数据窗口控件,将刚建好的数据窗口放在该窗口控件中,就可以通过命令按钮的script
编程实现对AutoCAD 图形数据库的操作了。
程序代码如下:
1 .按id 号查询某个图形:
long id
blob b
selectblob dwg
//dwg 字段为blob 类型,
在SQLServer 中为image 类型
into :b
from housedata
where id=:id
using SQLCA;
ole_1.objectdata = b
// 将查询结果放在OLE 控件中
2 .将激活的AutoCAD drawing OLE
控件中修改或新绘的图形信息存储到后台大型数据库中:
b = ole_1.objectdata
// 取新的图形数据到bolb 类型变量
updateblob housedata
set dwg = :b
where id = :id
using SQLCA;
......
注意事项:
(1) 在Win9 */WinNT 环境中有32K
内存使用限制,这样当查询出的相关AutoCAD
图形信息量较大,在同一个数据窗口显示后滚动时程序会报系统溢出错误信息,可以在程序中用脚本控制,让AutoCAD
Drawing OLE 的控件中只显示选中的图形数据。
(2) 在包含blob 或image 等二进制类型数据窗口中新增blob 或image
字段记录时,应先用insertrow 的方法产生空的blob 或image
类型数据,再根据id 号用updateblob SQL 语句将AutoCAD Drawing OLE
控件中的图形数据更新到新增的记录字段中。
(3) 后台大型数据库的管理非常重要,因为AutoCAD
图形信息量大,对数据库要求比较高,我们在比较下选择了Microsoft
SQL Server6.5 +WinNT4.0 平台,现在库存AutoCAD 图形6 万多个,数据库大小18G,应用证明Microsoft
的SQL Server 运行情况良好,并且顺利过渡2000 年。