中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > Oracle
开发基于Oracle数据库的管理信息系统
作者:yuanyang 时间:2007-06-15 15:36 出处:ccidnet.com 责编:月夜寒箫
              摘要:开发基于Oracle数据库的管理信息系统

1 前言

开发高水平的“管理信息系统”,选择性能优越的数据库是最重要的一环,我们经过多方面的调研和分析,选择了ORACLE7数据库,成功地开发了本系统。实践证明,本系统设计科学、合理、运行稳定,本文将具体阐述一下系统中应用ORACLE7数据库的方法和技术。

2 系统的开发、运行环境

本系统在CLIENT/SERVER结构上运行,SERVER为CDC4360小型机,和快速FDDI环网相接,内装有UNIX操作系统和ORACLE7数据库,系统总体网络协议为TCP/IP。

CLIENT端为486以上微机,16M以上内存,硬盘足够大,通过HUB、路由器、MODEM和SERVER连接。开发、运行平台是WIN95,安装了网络软件ONNET、ORACLECDE产品SQL*NETV2。开发工具是POWERBULDER5.0(以下简称PB5)、VB4等。

3 ORACLE7在系统中的各种应用

3.1一般性的数据管理

一般性的数据管理用数据窗口管理最方便,可以在数据窗口中进行表的增、删、改、查询等操作,下边是一些具体例子(PB5):

3.1.1连通ORACLE库,并将数据装入数据窗口:

 

  
              dw_1.SetTransObject(sqlca)
              dw_1.Retrieve()
  

3.1.2增加一条记录

 

  
              dw_1.InsertRow(dw_1.GetRow()+1)
              
              3.1.3删除一条记录(当前记录)
              
              dw_1.DeleteRow(0)
             
 

3.1.4将数据提交入库(存盘)

 

  
              dw_1.Update()
              commit;
             
 

3.1.5打印数据窗口(表)中的数据

 

 
              dw_1.print()
  

3.2文字类数据管理

3.2.1文本入库和查询

文本入库和查询可采用PB5的MLE(多行编辑器)作界面,编辑完成后存入ORACLE7的LONG字段中,查询时从LONG字段中取出,放入MLE中查询,下边是一个例子:

 

  
              //文本的预处理(以去除文本文件中的回车换行符为例说明)
              //将文件读入BLOB型变量
              text中fn=fileopen(txtname,streammode!)
              iffn<>-1then
              fileread(fn,text)
              fileclose(fn)
              //并转换为文本
              article=string(text)
              s=len(article)
              forv=1tos
              t=pos(article,char(13)+char(10),v)
              ift>0then
              article=replace(article,t,2,"")
              else
              endif
              next
              mle_1.text=article
              //将处理后的文件c:\bb.txt存盘,
              文件中的回车换行符已全部去掉
              text1=blob(article)
              filname="c:\bb.txt"
              fn=fileopen(filname,streammode!,
              write!,lockwrite!,replace!)
              iffn<>-1then
              filewrite(fn,text1)
              fileclose(fn)
              endif
              //文本入库
              nr1=blob(mle_1.text)
              updateblobgljwjsetnr=:nr1wherebh=:pass_parm
              andzwrq=:fsjandwjbs=:fl5usingsqlca;
              commit;
              //放入MLE中查询
              selectblobnrinto:nr1fromgljwjwherebh=:pass_parm
              andwjbs=:fl5andzwrq=:fsjusingsqlca;
              mle_1.text=blob(nr1)
             
 

3.2.2从库中重新生成文本文件filename.txt并存盘

 

  
              selectnrinto:filenfromfwgswherebh=:bh1
              andlwrq=:zwrq1usingsqlca;
              fname="c:\filename.txt"
              fh=fileopen(fname,streammode!,write!,lockwrite!,replace!)
              iffh<>-1then
              filewrite(fh,filen)
              fileclose(fh)
              endif

3.3处理图象文件(大的二进制文件)

图象文件(一般为BMP位图文件)是二进制文件,将其以数据流方式存入ORACLE7的LONG字段中,查询时从LONG字段中取出,放入图象框(如p_1)中查询,下边是一个例子:

 

  
              //将图象文件读入BLOB型变量pict中
              fn=fileopen(picname,streammode!)
              iffn<>-1then
              fileread(fn,pict)
              fileclose(fn)
              //将图象放入图象框p_1内查看
              setpicture(p_1,pict)
              endif
              //将图象存入表pic的LONG字段bmpt中
              updateblobpicsetbmpt=:pict;
              commit;
  

较大的图象文件一次不能入库,可采取分割图形的方式,分块存入,因为LONG字段所存放的数据大小一般是没限制的(可存放2G的内容)。

4开发应用经验

4.1建议CLIENT端通过SQL*NETV2进行ORACLE数据通信(不用SQL*NETTCPV1产品)

因为在ORACLE7推出以后,SQL*NETV1就没有做一些改进工作,继续支持到ORACLE7.2,ORACLE7.3以后的产品将不支持SQL*NETTCPV1,所以,ORACLE7用户应立即改用SQL*NETV2,不然会影响到库的运行稳定性。

ORACLECDE2和Developer2000提供了CLIENT端ORACLE产品的安装程序ORAINST.EXE,运行该文件来安装SQL*NETV2,选择的产品有:

 

 
              aORACLETCP/IPADPTER2.1.4.1.3
              bsql*net2.1.4.1.4
  

在WIN95下,网络软件产品(Tcp/IPVendor)选择MicrosoftwindowsNTTcp/IP3.1,按提示说明装入就可以了,另外还要做以下工作:

将SERVER上的tnsnames.ora文件复制到CLIENT端c:\orawin\network\admin目录下:

 

  
              ora7=(DESCRIPTION=
              (ADDRESS=
              (PROTOCOL=TCP)
              (HOST=111.1.1.1)
              (PORT=1521)
              )
              (CONNECT_DATA=(SID=ora7))
              )
  

可在SQLPLUS下键入连接命令scott/tiger@ora7测试连接情况。

首先要作好这三件工作:

4.2采取数据加密技术

对用户来说,查询信息是有权限的,若想查询某项保密数据,需正确地键入密码,才能查到。面对同一台微机,谁能正确地键入密码,谁就能做查询,该系统通过自定义一些复杂的函数运算产生密码,从表(TABLE)中找不到密码数据,通过这种精密的设计处理,达到了数据保密要求。下边是密码修改和识别的一段程序(PB5):

 

  
              password=sle_1.text
              a8=pos(sle_1.text,"/")
              ifa8>=1then
              password=left(sle_1.text,a8-1)
              newpassword=mid(sle_1.text,a8+1,len(sle_1.text)-a8)
              endif
              selectdwbminto:dmfromdwwheremm=:password;
              sle_1.text=""
              ifsqlca.sqlcode<>0then
              messagebox("警告:","口令错!")
              pw=pw+1
              ifpw>=3then
              close(w_bg_main)
              endif
              else
              mm=dm
              ifa8>=1then
              a7=messagebox("提示信息","确定要修改口令吗(y/n)?
              ",information!,YesNo!,2)
              ifa7=1then
              selectdwbminto:a9fromdwwheremm=:newpassword;
              ifsqlca.sqlcode<>100ornewpassword=""then
              messagebox("提示信息","新口令错!")
              gotoend1
              else
              updatedwsetmm=:newpassword
              wheremm=:password;
              messagebox("请记住新口令",string(newpassword))
              commit;
              endif
              endif
              endif

  

4.3用EXCEL输出精美表格

用VC或PB5将ORACLE库中的数据生成文本或EXCEL文件,再通过EXCEL的数据链接,将对应数据调入事先定义好的EXCEL标准输出表中,按用户的要求输出。

PB5生成EXCEL格式文件的SCRIPT语句举例如下:dw_1.SaveAs("c:\glxx.xls",excel!,true)

4.4正确使用日期型数据

在库操作过程中,若日期变量的值定义错了,将提示SQL语句出错信息,错误现象非常隐蔽,不好察觉,这是编程过程中的常见错误,在此特别强调一下。举一个例子:

若日期数据为常量,要按下列格式赋值(用一update语句说明):

 

 
              updatetabsetrq='1-Feb-96';
              commit;

 

5结束语

该系统的开发和应用,使我们更加体会到了ORACLE数据库的优越性,本系统的开发成功与此是分不开的,我们将做进一步探索,用先进的开发工具和升级的ORACLE8开发面向网络的和多媒体的“管理信息系统”。

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有