发信人: tyj()
整理人: (2000-05-29 20:10:09), 站内信件
|
用IBM Net.data 解决CAD图纸等大对象问题
苏州供电局信息中心
唐一均
---- IBM Net.data是IBM在web上的一种中间件,以往的CGI方式是在服务器端应 每个客户端请求而产生各个进程,当使用人数大量增多时,响应速度就会明显下 降,Net.data则是长驻服务,执行效率更高,编写以脚本为主并支持Java, REXX , Perl 和 C++等开发语言,使得开发更快更方便,Net.data和ASP(Active Serv er Page)有类似之处,但较ASP除支持NT外支持更多平台,如linux、Solaris、A IX、AS/400、OS/390、OS/400等,而目前而言UNIX等平台比NT要稳定很多,而且 Net.data的平台之间的移植性相当好。从性能上看Net.data也支持高性能的Fast CGI,如果需要应用于电子商务等数据流量大而重要的领域,Net.data就显的更为 适合, 1998年的冬奥会期间使用了Net.data,网上流量达到每分钟110,414次, Net.data还是运行良好, 所以虽然现在有很多种方式可以实现web与db2之间的数 据交换,但是基于各类综合性能全面考虑,我们更乐意用Net.data方式解决一些 问题。
---- 为了让大家有个直观的了解,下面简单介绍一个用Net.data方式解决的基于 web、db2的cad图纸的查询与显示的实现方法,假使您和您的同事正致力于飞机制 造和设计,或是正在为建造一个大厦而设计图纸,那么成堆的图纸就可以通过这 样的方式简便的查询到,并同时被您和您的同事所利用,应该在此声明的是,Ne t.data不仅只是能做一些查询工作,它提供的是完整的SQL语言的支持,也就是说 可以通过它输入,删除,更新数据,也许有人会担心Net.data实现方式的安全问 题,Net.data它可被安装于很多操作系统和很多web server,您尽可以挑选您认 为比较安全的系统,而且您可以在安装Net.data的web server上安装db2 CAE,由 CAE去取存放于另一台服务器上的db2数据,更有很多方法限于篇幅问题,在此不 祥述了。
---- 请您先访问下面地址下载net.data。
---- http://www.software.ibm.com/data/net.data/downloads.html
NT上安装好Net.data以及IBM UDB 5.2,
假定NT服务器地址是172.23.160.6。
用UDB控制中心或UDB命令行处理器
中新建一个数据库名为:tyjdb
连接到数据库tyjdb
connect to tyjdb user userid using password;
新建一个放大对象的表,表名为 cadtable;
create table pictable (name varchar(30) not NULL,
photo BLOB(2M),
primary key (name)
);
把大对象输入到数据库tyjdb中的表cadtable中。
Lob_in是文本文件,
import from lob_in.txt of del
modified by lobsinfile
method p(1,2)
messages imp_lob.msg
insert_update
into cadtable(
name,
photo
);
lob_in.txt中的内容假定为:
-----------------------
"CAD图纸1",t1.dwf,
"CAD图纸2",t2.dwf
-----------------------
---- t1.dwf和t2.dwf应放在db2命令行省缺目录下,而且应该小于2M, 然后在db 2命令行窗口中运行上面的import语句,两张大对象图片就插入了表中,如果您愿 意,也可用delphi编小段程序把图片插入表中。
---- 在NT服务器端Net.data安装目录下的macro目录中新建文本pic.d2w作为将要 运行脚本。
-----------------------------------------
%DEFINE{
DATABASE="tyjdb"
LOGIN="userid"
PASSWORD="password"
docroot="c:\inetpub\wwwroot\tmplobs\"
rename2= %EXEC "rename
c:\inetpub\wwwroot\tmplobs\@DTW_rDELSTR
($(V2), "1", "9") @DTW_rDELSTR($(V2), "1", "9").dwf"
%}
%FUNCTION(DTW_SQL) queryData() {
SELECT name,photo FROM pictable
%REPORT{
< center >< P >CAD图档管理系统< P >
< center >< a href="http://172.23.160.6/whip31.exe" >
看cad图纸前请先下载并安装autodesk 公司的whip.exe< /a >< br >
< br >
下面是从DB2库中查询到的结果
< br >
< br >
%ROW{
$(rename2)
< center >$(V1)
< a href="$(V2).dwf" >看具体图纸< /a >< br >< br >
%}
%}
%}
%HTML(REPORT){
< body bgcolor="#FFFFF0" >
@queryData()
%}
---- 下一步就是在浏览器上显示CAD图纸了,一般我们可以选择很多控件,因为 dwf文件显示速度越是显示dwg的七倍,所以在这里假设我们使用Autodesk公司的 whip!您可以访问http://www.autodesk.com/products/whip/index.htm 下载它, 每个浏览器用户只需要安装whip,就可以直接用浏览器观看任何dwf文件了,netd ata在处理大对象时,sql语句用db2中取出BLOB对象即dwf格式的cad图纸,并不给 它原来的文件名,而是给它一个临时文件,而且没有后缀名,并省缺的把它保存 到你web server的根目录的tmplobs目录下,如果你用IIS的话,一般就在C:\ine tpub\wwwroot\tmplobs下,而在已经安装了whip的浏览器端,如果最后返回的文 件不是dwf后缀的话,就不能正常显示dwf文件,所以我们最后要把这些文件改一 下文件名,上面脚本中@DTW_rDELSTR($(V2), "1", "9")意思是把变量$(V2)从第 一个字符到第九个字符全删除,因为$(V2)本身值是类似/tmplobs/???的字符串, 当脚本执行NT外部命令rename时,“/”应该是“\”,所以要把“/”全删除,如 果您用基于AIX或Linux的Net.data的话,就不用担心了,另外,如果您的大对象 是Net.data认识的jpg或gif等文件类型的话,就不用改名字了。
---- 现在您就可以打开浏览器输入URL,如果您都按省缺配置的话,应该输入,h ttp://172.23.160.6/cgi-bin/db2www.exe/pic.d2w/report 就可以看到两张cad 图片在网页上显示出来了。
---- 以上是Net.data显示查询CAD图纸等大对象的例子,您可以把它利用到电子 商务的商品图片显示等等方面,最后,建议大家在使用BLOB时多考虑一下系统性 能。您可以访问以下网站获取更多有用信息:
---- http://www.software.ibm.com/data/net.data/
免 费 订 阅
实用技巧分类
Office应用
CAD
C、C++
数据库应用
Delphi
Internet应用
Java
Notes应用
操作系统应用
PowerBuilder
VB
Visual Foxpro
其他类
上周 排行榜
如 何 投 稿 ?
在日常的工作生活中,我们对计算机软硬件技术的应用开发肯定有许多的心得体 会,拿来和众人分享:让别人得到他们想要的,使自己找到苦苦寻觅的;小的点 点滴滴,大的工程系统,这里都需要。投稿 的关键在“技巧”二字,知他人所不 知,这样的稿件本栏最最欢迎! 大家公认的 好文章自然会有好的奖励。希望每个 人在这里都有所收获...
中国惠普
3Com中国
Motorola中国
联想科技
CA中国
Cabletron
Sony在中国
---------------------------------------------------------------------- ----------
中国计算机世界出版服务公司版权所有
-- 身处不同的环境,思维就会有所不同,如果你能摆脱这种局限,不为自己局限的思维束缚,那就是最有智慧的人?BR> ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.106.102.99]
|
|