程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 開發基於Oracle數據庫的管理信息系統

開發基於Oracle數據庫的管理信息系統

編輯: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開發面向網絡的和多媒體的“管理信息系統”。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved