明辉站/网站教程/内容

在PB中应用AutoCAD图形数据库

网站教程2024-02-17 阅读
[摘要](文/李树爱) ---- PowerBuilder是目前较为流行的Client/Server应用程序开发工具,利用它可以很快速地开发出功能强大的应用程序,在各行各业中应用非常广泛。 ---- Microsoft SQL Server6.5是基于Client/Server结构的数据库管理系统,在C/...
(文/李树爱)

---- PowerBuilder是目前较为流行的Client/Server应用程序开发工具,利用它可以很快速地开发出功能强大的应用程序,在各行各业中应用非常广泛。

---- Microsoft SQL Server6.5是基于Client/Server结构的数据库管理系统,在C/S结构的应用中,服务器端软件用于存储数据、处理数据请求、维护数据完整性,而客户端软件用于处理用户界面、生成数据请求、将返回结果显示给用户,这种结构使得该系统能够在服务器和客户机之间平衡负载,在整体性能上与传统的基于文件共享方式数据库管理系统相比有大幅度的提高。Microsoft SQL Server6.5支持大规模的应用,它支持上千个并发用户,多达上百万的事物处理和超过200G大小的数据容量;它提供的自动锁功能使得并发用户可以安全而高效地访问数据,并且提供方便而灵活的备份和恢复方法,能够确保设计良好的应用中的数据在任何意外发生的情况下都可以最大限度地被恢复;它与NT的结合紧密,易用性强,因此越来越多地被采用。

---- PowerBuilder中应用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;
……

---- 注意事项:
在Win9*/WinNT环境中有32K内存使用限制,这样当查询出的相关AutoCAD图形信息量较大,在同一个数据窗口显示后滚动时程序会报系统溢出错误信息,可以在程序中用脚本控制,让AutoCAD Drawing OLE控件中只显示选中的图形数据。

在包含blob或image等大二进制类型数据窗口中新增blob或image字段记录时,应先用insertrow的方法产生空的blob或image类型数据,再根据id号用updateblob SQL语句将AutoCAD Drawing OLE控件中的图形数据更新到新增的记录字段中。

后台大型数据库的管理非常重要,因为AutoCAD图形信息量大,对数据库要求比较高,我们在比较下选择了Microsoft SQL Server6.5 + WinNT4.0平台,现在库存AutoCAD图形6万多个,数据库大小18G,应用证明Microsoft的SQL Server运行情况良好,并且顺利过渡2000年。

……

相关阅读