Oracle Developer/2000在高校文献资源管理系统中的运用与技巧

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:ogldfish
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:在高校的文献管理过程当中,文献的借、还等工作的量大而重复烦琐,文献的管理管理难度大。而高校文献管理系统的开发使用,大大提高了高校文献资源管理的效率,尤其是在向管理自动化发展的时代,将极大地减轻资料管理的劳动力和提高工作效率。
  关键词:ORACLE;FORM;图书;读者
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)12-21523-02
  
  The Uses and Techniques of Oracle Developer 2000 in the System of Literature Resource Management at the Colleges and Universities
  
  ZHOU Ren-yun,WU Zong-yi
  (Hainan Software Profession Institure, Qinghai 571400, China)
  Abstract:The book documentation management is a difficult but repeated process in colleges and universities.It took many laber forces much time to manage data.However,the developement and use of the system of documentation management can improve the efficiency of management greatly.Especially at the age of the development of management automation,it can release the laber forces to manage the data and promote the work efficiency.
  Key words:ORACLE;FORM;Book;Reader
  
  ORACLE Developer/2000 及 ORACLE*FORM 是運行在ORACLE7和WINDOWS界面下的新一代数据协同工具,是ORACLE第二代的C/S应用开发工具,也是数据库的前端开发工具主要有以下特点:
  (1)能够相互集成以创建综合应用
  (2)提供了共同设计界面,包括对象导航器、布局编辑器,PL/SQL开发环境,属性调配器。
  (3)集成了SQL和PL/SQL语言
  (4)能存取ORACLE和非ORACLE数据库
  (5)开发的产品容易移植到其他平台上
  下面是高校文献资源管理系统中的主要功能模块的实现:
  
  1 系统借书的设计与实现
  
  在《高校文献资源管理系统》中借书模块是必不可少的,其数据流图如下图1所示。
  在借书时,输入读者号之后,系统检测该读者号的合法性、判断其借书资格,同时显示该读者的姓名、身份、以借册数和借书权限(读者借书最大册数,根据读者的身份不同而不同)。并在每次输入读者号时起动一个计数器对当前读者借书册数进行记数,计算出还书时间,然后修改读者的相关数据并于显示出来。而计数器是为了显示而设定的。借书功能具体设计如下:
  Declare
  Id 读者号
  Mark 借书资格标识
  Borrownum 借书权限
  lend 已借册数
  Money 欠罚款数
  alert_buttonnumber
  Begin
  :global.n=-1; /*定义计数器和处值*/
  select 读者号.借书资格标识借书权限,已借册数,欠罚款数 into
  id,mark,borrownum,lend,money
  form 读者
  where 读者号=:one.读者号;
  :global.id1:=one.读者号;
  ifmark=’有效’ /*检测借书资格*/
  then if lend  then select 姓名,类别号,借书权限,
  已借册数 into:two.姓名,
  :two.类别号,:two.借书权限,
  :two.已借册数
  from 读者
  where 读者号=:one.读者号;
  else message(‘该读者的借书权限已经用完’); /*显示警告*/
  end if;
  elseifmark=’挂失’
  then if show_alert(‘alert_1’)=alert_button1
   then raise form_trigger_failure;
  end if
  else mark=’停借’
  then if show_alert(‘alert_2’)=alert_button1
  then raise form_trigger_failure;
  end if
  end if;
  exception
  when NO_DATA_FOUND THEN
  MESSAGE(‘非法读者号,请重新输入读者号’);
  ALERT_BUTTON:=SHOW_ALERT(’ALERT5’);
  RAISE form_trigger_faiture;End;
  
  图1
  在借书模块中比较困难的是显示读者所借的书。在这里使用了上面定义的计数器。当一输入读者的借书证号码就给计数器赋值。每输入所借图书号计数器就加一(计数器的值一直保持到清除或退出为止),如果输入的是非法的图书号或者该图书已借出去,则系统将给于警告并使计数器减一。
  N:=:global.n;n:=n+1;:global.n:=n; /*加一*/
  N:=:global.n:n:=n-1;:blobal.n:=n;/*减一*/
  如果输入的是合法图书号并且该图书未借,则显示所借的图书信息。然后修改读者表里当前读者的相关信息既已借册数并把图书存入借书表中:
  Update 读者 set 已借册数=已借册数+1 where 读者号one.读者号;
  Select 已借册数 into:two.已借册数 :two.读者 where 读者号one.读者号;
  Insert into 借 value(:global.id2,:global.id1,:global.num,sysdate,add_months(sysdate,2),
  :global.lend,:global.bookname,:global.idwriter,:global.idminery,:global.idname)
  sysdate是系统时间,add_months(sysdate,2)是当前时间加2个月为还书时间但此时图书并不是真正的存入服务器的基表中,而是存放在基表拥有当前PC机的内存块中。接着判断计数器,根据计数器的值显示在对应的模块中。在显示模块中一共设定了15(0-14)块,它的显示是根据读者所借的册数和计数器的值来进行判断显示的:   If :global.n=0
  then select 条码号,借书时间,还书时间,书名 into :0.条码号,:0.借书时间,:0.还书时间,:0书名
  
  from 借书 where 条码号=:global.id1
  /*:global.n是计数器的值,显示第一本*/
  End if
  If :global.n=1
  Then Select 条码号,借书时间,还书时间,书名 Into:1.条码号,:1.借书时间,:1.还书时间,:1.书名
  From 借书 Where 条码号=:global.id1; /*显示第一本*/
  End if
  
  2 查询功能的设计
  
  所谓查询就是充许用户从数据库的基表或视图中选择行列数据写入工作空间并显示出来。但在使用Form 的内部查询功能中却发现在每次输入查询条件进行查询时都显示整个表的记录,同时也不完全支持SQL环境下的语法(SQL环境和Form环境有些不同),查询模块的具体设计思想如下:首先,建立一个和基表(查询时使用的表)完全一样的临时表temp。temp用于存放满足查询条件的记录,但不是真正的存放到temp中,而是存放在temp占用内存块之中,然后利用Form中的查询功能实现显示满足条件的记录。
  Declare
  N number;
  Begin
  :global.n=’%’;
  If :Text_item1:=:global.n or :Text.item3:=:global.n
  Then Insert into temp From 读者
  Else
  Iinsert Into temp From 读者 Where 读者号:=Text_item1 or 姓名:=:Text_item3
  End if;
  Execute_quert; /*查询并显示*/
  End;
  利用临时表的方法有一个优点就是把对基表的操作转为对temp的操作,不
  但减少了对服务器的访问次数,并且提高了读取速度和系统的运行速度(因为如果基于表查询,而基表存放在服务器上,如果查询的记录较少则系统运行速度没有明显变化,但如果记录多则将严重影响系统的速度)。在查询显示记录的同时也利用了视图技术,并在基表与视图显示块中显示了对应读者所借图书的书名、作者、出版社、还书时间和价格。在定义视图时定义读者表的读者号为主键(Primary key)借书表的读者号为外部键(Foreign key)。
  
  3 Form 的使用技巧
  
  在使用Oracle*Form4.5设计《高校文献资源管理系统》过程中,通过自己的摸索和查找资料,总结出一些方法和体会:
  3.1对象Alert(警告)
  在设计中使用了大量的对象Alert(警告),报警是显示的常见窗口,若要警告用户或把当前执行的操作信息报告给用户时必须使用它。它的设计分两部分:一部分在SQL*FROMS的对象Alert中,另一部分在对象Block的Button(按钮)块项中(以删除警告为例子):
  (1)在对象Alert中,需添加名为Delete_Alert的项并修改其属性如下:
  Display
  Title 删除警告
  Functional
  Button1确认
  Button2取消
  (2)在对象Block的Button块中,Delete项是一个显示为“删除”使用触发器
  WHEN_BUTTON_PRESSED(表示点中按钮),当按下按钮时作如下工作:
  Declare
  Alert_buttonnumber;
  Begin
  Alert_button:=SHOW_ALERT(‘DELETE_ALERT’);
  IFALERT_BUTTON:=ALERT_BUTTON1
  Then DELETE_RECORD;
  COMMIT——WORK; /*保存*/
  END IF;
  END;
  3.2 触发子
  在系统中很多地方运用了触发子。使用触发子的好处是它可以自动锁定、检验当前使用的项(Item)唯一性、合法性或非空性。在登录读者、图书和期刊中就利用了触发子WHEN_VALEDATE_RECORD被触发,它自动在服务器上检测,若在系统中已经存在该号码或输入的数据不达到规定的长度(号码为8位),则触发子失败并禁止下一步的操作,输入焦点返回项。而在输入其他的项时主要利用触发子的非空性。例如,在读者登录中的姓名一项就定义它是非空的,必须录入,否则将不能保存当前记录或点中该项之后锁定不能离开直到输入为止。
  3.3图象
  使用SQL*FORMS制作封面时调入图象后,一般的WINDOWS图象设置是256色,而调入的画布的图象是16色,所以调入图象时要进行设置:
  Format->Drwing options->Image
  Image Dither 将Image Dither 设置成On图象便为256色
  3.4主表、子表互查
  由于在Form提供的查询模式中可以实现由主表对子表的查询,但不能实现由子表对主表的查询,主表和子表互相查询的具体实现方法如下:
  /*Tigger :when_button_pressde*/
  Declare
  Vid 读者.读者号%type;
  Curosr c1 is selectvid Form 借书Where 条形码:=:id;
  Begin
  :global.tj:=’vid’;
  Iif :姓名 is not null Then
  :globa.tj:=:global.tj || ‘and 姓名 LIKE ‘%’’ || Ltrim(Rtrim(:姓名)) || ‘%’;
  If :global.条码号.tj:=‘vid!=vid’;
  Open c1;
  Loop
  FETCH C1 INTO vid;
  EXIT WHEN C1 %NOTFOUND;
  :global.条码号.tj:=:global.条码号.tj || ‘or id=’’’ || vid || ‘’’’
  End loop;close c1;
  :global.tj:=:global.tj || ‘and (‘||Ltrim(Rtrim(:global.条码号.tj))||’)’
  End if;
  :global.tj:=Ltrim(Rtrim(:global.tj));
  NEW_RORM(’读者查询’);
  END;
  然后对查询结果表格编写以下PL/SQL语句;
  Set_block_property(‘读者’,default_where, :global.tj);
  Execute_query;
  《高校文献管理系统》的开发采用Oracle for windws(7.3)作为开发工具,作为一个大型数据库,Oracle 有很多的优点。但Oracle 在查询方面的可用性比较低。系统设计时虽然对此作了一些研究,但很多方面还有待进一步的完善。
  
  参考文献:
  [1](美)Sott Urman.译友翻译组译.Oracle8 PL/SQL程序设计.机械工业出版社,1998.6.
  [2](美)Sott Urman.译友翻译组译.Oracle8 构造工具使用指南.机械工业出版社,1998.6.
  [3](美)Sott Urman.譯友翻译组译.Oracle8 开发人员指南.机械工业出版社,1998.6.
  [4]北方交通大学自动化系统研究院.Oracle Developer/2000 使用技术与方法.科学出版社,1997.6.
  “本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”
其他文献
摘要:本文在对比分析IPSec和MPLS的基础上,结合华为3COM的VPE技术论述了这两种技术结合部署的必要性和可行性,以构建全程全网的企业VPN,为基于Internet的数据传输提供所能获得的最佳总体安全解决方案。  关键词:虚拟专用网;多协议标记交换;网际协议安全  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)12-21547-02    1 引言    虚拟专
期刊
摘要:同一网络中所有计算机的IP地址须各自不同,具有唯一性,當人们在有意无意中破坏了IP地址的这种规则,就势必产生了IP地址冲突,本文在详细介绍IP地址冲突现象的基础上,综合描述了多种预防和解决此类问题的途径,并指出各途径之间存在的特点。  关键词:网络;IP地址;冲突;MAC地址  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)12-21571-02    Ways
期刊
摘要:本文根据Web服务器的特点,将检测Web服务器漏洞攻击的基于规范的入侵检测技术和检测脚本类型攻击的URL过滤技术相结合,设计了一种保护Web服务器的入侵检测模型WIDS,并对关键模块的实现加以说明,最后通过实例分析了该模型的工作过程。  关键词:入侵检测;基于规范的入侵检测;URL过滤技术;Web服务器  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)12-21
期刊
摘要:从管理地区电网的实际出发,设计了一种集成化的地区电网集成信息系统。应用ASP.NET开发平台和C#语言技术,基于Web的B/S模式、以SQL Server 2000开发的开放式数据库为基础,运用网络技术综合管理与控制企业内其他开放式管理系统、实时信息系统、各部门的所有相关信息,具有各类信息统一管理、统一应用,传输方便、快捷,数据及时、准确、共享范围广等特点,并提供了BBS等功能。该系统完善了
期刊
摘要:数据库应用程序与数据库的数据访问接口有多种类型,最新的是ADO技术。本文以VB与SQL Server为平台,研究ADO对象编程技术。  关键词: ADO对象编程;VB;SQL Server  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)12-21488-01    Discuss the ADO Object ProgrammeBase on SQL Serv
期刊
摘要:结合上海民防信息化的特点和信息化建设实践,本文提出基于存储区域网络共享的上海民防信息存储改造方案,并还介绍了数据冗余容灾存储的设计。  关键词:SAN;存储区域网络;SNIA   中图分类号:TP274文献标识码:A文章编号:1009-3044(2007)12-21486-02    Reseach on the Storage of Shanghai Civil Defense Infor
期刊
摘要:Blog是近些年来发展很迅速的一种新的基于Web的信息交流技术。电子商务自诞生以来就与计算机技术紧密相连,电子商务系统是通过互联网完成的商务交易系统。通过对Blog及其相关技术和电子商务的特点的分析研究,提出了在电子商务系统的销售环节中应用Blog的新思路、技术可行性分析,以及实现企业Blog的方法。在企业的电子商务系统中应用Blog,能够提升企业的知名度、减少企业的经营风险、提高企业的知识
期刊
摘要:论文针对Win2000 Server操作系统的系统特性,以及对常用系统组件的安全分析和组件选择,深入的论述了服务器安全配置的系列问题,以求大部分用户更深入的了解、使用Server操作系统,最大程度的提高系统的安全系数。  关键词:服务器;安全配置  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)12-21573-02    To Make a Thorough
期刊
摘要:DTS是一个强大而且灵活的数据库迁移工具,它能够实现各种异构数据源的数据转换。本文通过一个数据仓库实例,说明如何利用DTS将原始的业务数据源加载到数据仓库中,重点说明运用DTS中的ActiveX脚本语言转换数据。  关键词:DTS;数据仓库;数据转换;ActiveX  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)12-21514-02    Applicati
期刊
摘要:本文构建的系统是以PIC16F877单片机作为嵌入式系统的中央处理单元,并通过硬件集成电路S-7600A协议栈芯片来实现TCP/IP协议栈。因为以太网已经成为一种广泛的接入Internet的方式,可以通过RTL8019A以太网控制芯片把该系统接入以太网,然后通过以太网接入Internet,从而可实现对此嵌入式系统的远程访问和控制。  关键词:PIC;TCP/IP;嵌入式; 以太网  中图分类
期刊