Database 版 (精华区)

发信人: wodeji (西西), 信区: Database
标  题:  用PB和Oracle 7.2开发数据库  
发信站: 紫 丁 香 (Thu Jul 23 20:27:27 1998), 站内信件

【 原文由 pipishi.bbs@bbs.nju.edu.cn 所发表 】
   市面上类似"文件管理系统"的软件很多,但真正使用户比较满意的
并不多见。要想满足用户的要求,只有自己来做开发工作,而这方面工
作难度较大,一方面要求开发工具有较强的文字处理能力,另一方面需
要选择适当的、性能优越的数据库,还要有丰富的开发经验。笔者在
作了大量的分析之后,决定用PowerBulder4.0作开发工具,数据库用Or
acle7.2,开发"文件管理系统"。现将一些体会总结成文,供同行们参
考。
    系统概述
    本系统采用了当今流行的Client/Server结构,Server端为UNIX操
作系统和Oracle7.2数据库,前端开发平台是Windows 3.1或Windows95
,网络协议是TCP/IP。主服务器为Alpha8200 ,Client端可以用HUB、R
outer和远程终端,通过FTP、SQL*NET V1 TCP/IP(或SQL*NET V2)或NF
S直接从LAN和WAN上读取和处理文件。该"文件管理系统"包括文件维
护和文件查询两部分。
    "文件维护部分"包括文件的录入、分发和其它日常维护工作,全
文录入用PowerBuilder 4.0的MLE(多行编辑器)作为编辑器,编辑完成   
后存入ORACLE的LONG字段中。"文件查询部分" 可实现按多项组合条
件进行查询,如年度或主题词等。文件的处理单和分类统计表可在系
统中调用Excel,通过数据链接后输出到屏幕或打印机。
    技术难点及解决的方法

    1.编制文件过滤器,提高维护效率。
    因为该系统涉及的数据是文字而非一般性的数字,所以在格式编
排等方面做的工作要更加细致。比如说,Windows下的编辑器都有一个
共同点,只要遇到回车换行符,该行就立即断开。现在一些正规文件多
数用华光、方正、WPS等排版软件编辑而成,如果我们直接将其入库,
在调入MLE编辑器时就会出现七长八短、乱字连篇的现象,就是因为文
件中有回车换行符和一些排版符号等,必须用MLE重排才行,但这又很
浪费时间。有什么好的解决方案呢?回答是:在文件入Oracle库之前,
先自动做预处理工作———将"非法"字符过滤掉。如果"非法"字符是
回车换行符和"&",可运行下列程序将其去掉:
    long i,j.s,f1,f2
    blob text1,text2
    int fp
    string article
    f1=fileopen("c:"wj.txt",streammode!)
    fileread(f1,text)
    fileclose(f1)                                             
  mle_1.text=string(text)
    article=mle_1.text
    s=len(article)
    for i=1 to s
        j=pos(article,char(13),i)
        if j>0 then
       article=replace(article,j,1,"")
       else
        end if
    next
    s=len(article)
    for i=1 to s
    j=pos(article,"&",i)
    if j>0 then
        article=replace(article,j,1,"")
        else
    end if
    next
    f2=fileopen("c:"wjnew.txt",streammode!,write!,lock-write
!,replace!)
    if f2<>-1 then
    filewrite(f2,text2)                            
 fileclose(f2)
    end if
    mle_1.text=article
    经过修改后,将文字入库:
    text2=blob(mle_1.text)
    insert into wj_tab(字段名)values(字段值)using sqlca;
    commit;
    updateblob wj_tab set text=:text2 where <条件> using sql
ca;
    commit;

    2.采取加密措施,实现按权限查询。
    对用户来说,查阅文件是有权限的,这是个常识性的问题。在进入
"文件查询"系统时,需正确地键入密码,用户只能查到"发给他的文件"
。面对同一台微机,谁能正确地键入密码,谁就能做查询,但只能查到"
自己的"文件,达到了保密要求。
    3.从文中检索关键词,帮助理解全文。
    可用下列程序实现(仅举一个例子):
    fn=fileopen(named,streammode!)
    if fn>0 then
    fileread(fn,text1)
    fileclose(fn)                                     
  mle_1.text=string(text1)
    article=mle_1.text
    j=pos(article,"编号")
    if j>0 then
        bb=mid(article,j+5,5)
        sle_1.text=bb
        bh1=long(bb)
        else
    end if
    j=pos(article,"种类")
    if j>0 then
        zz=mid(article,j+5,6)
        sle_5.text=zz
        else
    end if

    4.在用MLE编辑文字时,出现光标错位的现象,调用"中文之星"字
库或不用"粗线条"字体,可解决此类问题。

    5.在系统运行过程中,出现"缺少一些DLL库函数"的错误提示,解
决此类问题的方法是:将功能相近的库函数复制成"缺少的库函数"。        
 6.经 常使用窗口继承和动态数据窗口,减少了重复性劳动,提高
了编程效率。
    开发工具的缺陷PowerBuilder4.0的多行编辑器MLE只能编辑小于
32K的文件,这就限制了对32K以上大文本文件的正常管理,对这些文件
的管理还要借助别的软件来弥补这个不足,这是开发工具的一大缺陷
。笔者很希望Power Soft公司能在这方面做些工作,解决这一问题。
    开发工具的缺陷
    PowerBuilder 4.0的多行编辑器MLE只能编辑小于32K的文件, 这
就限制了对32K以上的大文本文件的正常管理, 对这些文件的管理还
要借助别的软件来弥补这个不足, 这是开发工具的一大缺陷。笔者很
希望Power Soft公司能在这方面做些工作, 解决这一问题。

--                                                            

--
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: cad4.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.677毫秒