亚洲欧美中文字幕专区,日韩免费在线播放,777免费视频,欧美手机看片,色cccwww在线播放,欧美亚洲另类自拍偷在线拍,欧美无限看

當(dāng)前位置:首頁(yè) -> 焦點(diǎn)新聞

利用ODBC實(shí)現(xiàn)異種數(shù)據(jù)庫(kù)系統(tǒng)間數(shù)據(jù)交換

2005/1/7 12:08:43       
 
中國(guó)科學(xué)院成都計(jì)算機(jī)應(yīng)用研究所CIMS實(shí)驗(yàn)室 四川 鐘 勇
  本文闡述了如何應(yīng)用ODBC技術(shù)實(shí)現(xiàn)多種數(shù)據(jù)庫(kù)系統(tǒng)間數(shù)據(jù)的共享和交換,舊信息系統(tǒng)數(shù)據(jù)的方便利用,單機(jī)系統(tǒng)和網(wǎng)絡(luò)系統(tǒng)數(shù)據(jù)的傳輸?shù)。并以PowerBuilder 開發(fā)工具為例,描述了其實(shí)現(xiàn)技術(shù)、方法和實(shí)現(xiàn)過程,對(duì)管理信息系統(tǒng)的開發(fā)和實(shí)施都有較高的實(shí)用價(jià)值。

    1 前言
  由于開發(fā)環(huán)境和開發(fā)工具的不斷更新,用戶在實(shí)施新的管理系統(tǒng)同時(shí),也毫無(wú)例外地面對(duì)一個(gè)事實(shí),那就是舊系統(tǒng)的升級(jí)、新舊系統(tǒng)間數(shù)據(jù)的轉(zhuǎn)換與相互調(diào)用、單機(jī)用戶數(shù)據(jù)上網(wǎng)等。這一功能的好壞直接決定新系統(tǒng)實(shí)施的成敗,因?yàn)橛脩羰墙^對(duì)不愿意將原有系統(tǒng)數(shù)據(jù)拋棄而重新為啟用新系統(tǒng)進(jìn)行大量的初始信息的錄入,從某種意義上講,這一點(diǎn)比系統(tǒng)的先進(jìn)性也許更為重要。
  為了實(shí)現(xiàn)這一重要功能,我們根據(jù)多年進(jìn)行MIS和MRPII/ERP軟件設(shè)計(jì)開發(fā)和實(shí)施經(jīng)驗(yàn),專門討論如何在先進(jìn)的開發(fā)平臺(tái)PowerBuilder 5.0中,應(yīng)用ODBC技術(shù),進(jìn)行諸如FoxPro、Sql Anywhere、Sybase等數(shù)據(jù)庫(kù)系統(tǒng)之間數(shù)據(jù)的存儲(chǔ)、轉(zhuǎn)換和調(diào)用,從應(yīng)用系統(tǒng)角度實(shí)現(xiàn)多平臺(tái)數(shù)據(jù)的管理信息系統(tǒng)和異種數(shù)據(jù)庫(kù)環(huán)境管理信息系統(tǒng)的集成,從數(shù)據(jù)庫(kù)角度則實(shí)現(xiàn)從本地?cái)?shù)據(jù)庫(kù),遠(yuǎn)程數(shù)據(jù)庫(kù)乃至數(shù)據(jù)倉(cāng)庫(kù)的全面集成。
    2 有關(guān)ODBC
  ODBC即開放數(shù)據(jù)互連,隨著ODBC技術(shù)的產(chǎn)生,許多開發(fā)平臺(tái)如VB、PB都使用了該技術(shù),擁有ODBC接口。ODBC實(shí)際上含一系列的驅(qū)動(dòng)程序,應(yīng)用程序通過調(diào)用ODBC所支持的函數(shù),調(diào)用相應(yīng)的驅(qū)動(dòng)程序,實(shí)現(xiàn)對(duì)不同數(shù)據(jù)庫(kù)的訪問。
    3 在PowerBuilder 5.0中使用ODBC
  使用PowerBuilder平臺(tái)進(jìn)行管理系統(tǒng)開發(fā),它的可視化程度高,可以大大提高開發(fā)效率,當(dāng)然其中大量涉及的就是庫(kù)、表的操作。如果系統(tǒng)設(shè)計(jì)采用C/S體系結(jié)構(gòu),數(shù)據(jù)庫(kù)位于服務(wù)器端。另一方面,在實(shí)際工作中還涉及使用本地?cái)?shù)據(jù)庫(kù)SQL anywhere、原管理系統(tǒng)的數(shù)據(jù)庫(kù)(如FoxPro等)的數(shù)據(jù)與現(xiàn)有Sybase數(shù)據(jù)庫(kù)的聯(lián)接、數(shù)據(jù)交換等實(shí)際情況,因此ODBC的使用也顯得極其重要。
    3.1 配置ODBC
  如果在安裝PowerBuilder 5.0時(shí),采用Customer安裝,此時(shí)可選擇ODBC ,即安裝了ODBC驅(qū)動(dòng)程序,可以在PowerBuilder開發(fā)環(huán)境中,選擇ODBC的Create ODBC采單項(xiàng),此時(shí)在配置界面上輸入以下內(nèi)容:
  Database Name:DB-LOCAL
  User Id:DBA
  Password:sql(缺省)
  然后按OK按鈕,系統(tǒng)即建立了一個(gè)本地?cái)?shù)據(jù)庫(kù)DB-LOCAL,通過Administration 或Sqlanywhere即可在本數(shù)據(jù)庫(kù)上建立多個(gè)數(shù)據(jù)庫(kù)表,如建立一個(gè)部門表BBM:
  drop table bbm;
  create table bbm(
    bm integer, //部門編碼
    mc varchar(20), //部門名稱
    fl varchar(2), //部門分類
    … …
    constrait pr-key-bbm(bm)
    );
    3.2 本地?cái)?shù)據(jù)庫(kù)的聯(lián)接
  首先建立初始化文件local.ini,其內(nèi)容為:
  [database]
  DBMS=ODBC
  Database=DB-LOCAL
  ServerName=
  Logid=DBA
  Logpassword=sql
  UserId=
  Userpass=
  Dbparm=Connectstring="DSN=DB-LOCAL"
  然后在應(yīng)用(Application) 的腳本(Script)中寫入:
  sqlca.DBMS= ProfileString ("local.ini", "database", "dbms", "")
  sqlca.database= ProfileString ("local.ini", "database", "database", "")
  sqlca.userid= ProfileString ("local.ini", "database", "userid", "")
  sqlca.dbpass = ProfileString ("local.ini", "database", "dbpass", "")
  sqlca.logid = ProfileString ("local.ini", "database", "logid", "")
  sqlca.logpass = ProfileString ("local.ini", "database", "LogPassWord", "")
  sqlca.servername = ProfileString ("local.ini", "database", "servername", "")
  sqlca.dbparm = ProfileString ("local.ini", "database", "dbparm", "")
  connect;
  ... ...
    3.3 多個(gè)數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)調(diào)用和數(shù)據(jù)交換
  在本地?cái)?shù)據(jù)的調(diào)用和轉(zhuǎn)換方法中,PowerBuilder提供了Pipline功能。另外,也可先通過建立一個(gè)與原數(shù)據(jù)庫(kù)表結(jié)構(gòu)一致的表,用Import直接將指定數(shù)據(jù)文件(*.TXT、*.DBF等)的記錄轉(zhuǎn)入新的數(shù)據(jù)庫(kù)表,然后用一系列的SQL語(yǔ)句對(duì)新表進(jìn)行處理,以適應(yīng)新系統(tǒng)的需要,這對(duì)程序員來(lái)說(shuō),是很簡(jiǎn)單和實(shí)用的,特別是在將原有管理系統(tǒng)數(shù)據(jù)倒入即將開始運(yùn)行的新系統(tǒng)是很有用的。
  而對(duì)于用戶來(lái)說(shuō),通過編寫Script和設(shè)計(jì)友好的用戶界面也許更切合實(shí)際。
   程序設(shè)計(jì)實(shí)現(xiàn)異種數(shù)據(jù)庫(kù)直接數(shù)據(jù)交換
  例如,有兩個(gè)數(shù)據(jù)庫(kù):本地庫(kù)DB-LOCAL、遠(yuǎn)程Sybase數(shù)據(jù)庫(kù)DB-SYB,DB-LOCAL為3.2節(jié)建立的本地庫(kù),其初始化文件為SYB.INI,按以下步驟可以建立兩庫(kù)之間的聯(lián)系:
  定義Transaction syb
  在application的Script中增加以下內(nèi)容 :
  Syb=create transaction
  Syb.DBMS=Profilestring("SYB.INI","database","dbms","")
   ...
  connect using Syb;
   ...
  假設(shè)在兩個(gè)數(shù)據(jù)庫(kù)中均建立了表BBM,在編寫Script時(shí),通過SQL語(yǔ)句對(duì)不同Transaction進(jìn)行操作即可實(shí)現(xiàn)兩個(gè)BBM表間數(shù)的交換。
   通過中間文件實(shí)現(xiàn)異種數(shù)據(jù)庫(kù)數(shù)據(jù)交換
  這種方法對(duì)獨(dú)立運(yùn)行的信息系統(tǒng)間傳遞數(shù)據(jù)非常實(shí)用(如單機(jī)運(yùn)行的系統(tǒng)和網(wǎng)絡(luò)系統(tǒng)、單機(jī)系統(tǒng)和單機(jī)系統(tǒng)間)在使用PowerBuilder編程時(shí),對(duì)使用Datawindow檢索出的數(shù)據(jù),使用下述函數(shù)用文件形式存儲(chǔ):
  dwcontrol.SaveAs ( filename, saveastype, colheading)
  釋義:
  dwcontrol:數(shù)據(jù)窗口名
  filename :存儲(chǔ)的文件名
  saveastype :文件類型,為Text!,HTML!,EXCEL!,dBASEIII!,...
  colheading:文件中是否包括字段名(TRUR/FALSE)
  例如:dw-1.SaveAs("C:\data\bbm.txt", Text!, FALSE)
  同樣用另一函數(shù)實(shí)現(xiàn)該文件倒入設(shè)計(jì)的Datawindow,繼而可存入相應(yīng)數(shù)據(jù)庫(kù)表:
  dwcontrol.ImportFile ( filename {,startrow {,endrow {,startcolumn {,endcolumn {,dwstartcolumn )
  釋義:
  dwcontrol:數(shù)據(jù)窗口
  filename:文件名
  startrow:開始行
  endrow :結(jié)束行
  startcolumn:開始列
  endcolumn:結(jié)束列
  dwstartcolumn:數(shù)據(jù)窗口接受數(shù)據(jù)的開始列
  例如:dw-2.ImportFile("C:\data\bbm.txt")
    4 注意的問題
  使用ODBC同時(shí)操作多種數(shù)據(jù)庫(kù)需注意的問題:
   注意區(qū)分不同的Transaction;
   不同數(shù)據(jù)庫(kù)環(huán)境的SQL函數(shù)各不相同,在編寫Script時(shí)務(wù)必小心,如Sybase數(shù)據(jù)庫(kù)和Sqlanywhere。下面列出了常用的幾個(gè)函數(shù)區(qū)別:
  數(shù)據(jù)庫(kù)SqlanywhereSybase類型轉(zhuǎn)換stringconvert(...)datedatetime日期函數(shù)now(*)getdate()yeardatepart(...)monthday字符串函數(shù)left無(wú)trim無(wú)ltrim無(wú)substrsubstringlengthchar-length空函數(shù)isnull******isnull
  由于這些區(qū)別,不僅在新老系統(tǒng)數(shù)據(jù)轉(zhuǎn)換上產(chǎn)生了不便,而且在網(wǎng)絡(luò)系統(tǒng)本地化上產(chǎn)生了問題,所以必需修改相應(yīng)的Script。
    5 小結(jié)
  目前,眾多的數(shù)據(jù)庫(kù)系統(tǒng)、可視化開發(fā)工具都使用或支持ODBC技術(shù),它對(duì)于強(qiáng)調(diào)信息高度集成的新型管理信息系統(tǒng)的設(shè)計(jì)和實(shí)施具有重要的意義。筆者使用改技術(shù)進(jìn)行多個(gè)信息系統(tǒng)的設(shè)計(jì),特別在實(shí)施過程中收到了事半功倍的效果,為系統(tǒng)快速和成功運(yùn)行提供了強(qiáng)有力的支持。

煤炭網(wǎng)版權(quán)與免責(zé)聲明:

凡本網(wǎng)注明"來(lái)源:煤炭網(wǎng)www.jingweixianlan.com "的所有文字、圖片和音視頻稿件,版權(quán)均為"煤炭網(wǎng)www.jingweixianlan.com "獨(dú)家所有,任何媒體、網(wǎng)站或個(gè)人在轉(zhuǎn)載使用時(shí)必須注明"來(lái)源:煤炭網(wǎng)www.jingweixianlan.com ",違反者本網(wǎng)將依法追究責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,是本著為讀者傳遞更多信息的目的,并不意味著本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載使用時(shí),必須保留本網(wǎng)注明的稿件來(lái)源,禁止擅自篡改稿件來(lái)源,并自負(fù)版權(quán)等法律責(zé)任。違反者本網(wǎng)也將依法追究責(zé)任。 如本網(wǎng)轉(zhuǎn)載稿件涉及版權(quán)等問題,請(qǐng)作者在兩周內(nèi)盡快來(lái)電或來(lái)函聯(lián)系。

  • 用手機(jī)也能做煤炭生意啦!
  • 中煤遠(yuǎn)大:煤炭貿(mào)易也有了“支付寶”
  • 中煤開啟煤炭出口貿(mào)易人民幣結(jié)算新時(shí)代
  • 下半年煤炭市場(chǎng)依然嚴(yán)峻
市場(chǎng)動(dòng)態(tài)

網(wǎng)站技術(shù)運(yùn)營(yíng):北京真石數(shù)字科技股份有限公司、喀什中煤遠(yuǎn)大供應(yīng)鏈管理有限公司、喀什煤網(wǎng)數(shù)字科技有限公司

總部地址:北京市豐臺(tái)區(qū)總部基地航豐路中航榮豐1層

京ICP備18023690號(hào)-1      京公網(wǎng)安備 11010602010109號(hào)


關(guān)注中煤遠(yuǎn)大微信
跟蹤最新行業(yè)資訊