精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>已关闭版区>>● IBM>>用IBM Net.data 解决CAD图纸等大对象问题

主题:用IBM Net.data 解决CAD图纸等大对象问题
发信人: 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]

[关闭][返回]