国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于PowerBuilder8.0的動態(tài)配置ODBC實(shí)現(xiàn)研究

2015-01-06 18:48:14邢國軍陳亞峰
電腦知識與技術(shù) 2014年34期
關(guān)鍵詞:開放式數(shù)據(jù)庫

邢國軍 陳亞峰

摘要:ODBC是開放式服務(wù)結(jié)構(gòu)中數(shù)據(jù)庫的重要組成部分。在闡述ODBC的概念和分析PowerBuilder8.0數(shù)據(jù)庫接口的基礎(chǔ)上,研究了PowerBuilder8.0中的動態(tài)配置ODBC的具體方法。

關(guān)鍵詞:ODBC;開放式;數(shù)據(jù)庫;標(biāo)準(zhǔn)API;動態(tài)配置

中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2014)34-8083-02

PowerBuilder8.0是生產(chǎn)廠商PowerSoft公司研制的快速開發(fā)軟件,能實(shí)現(xiàn)客戶機(jī)/服務(wù)器結(jié)構(gòu)體系的設(shè)計(jì)。它采用面向?qū)ο蟮拈_發(fā)技術(shù),在可視化的開發(fā)環(huán)境中可以快速開發(fā)出適用于多種平臺的數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)庫應(yīng)用程序。采取ODBC數(shù)據(jù)源調(diào)用后臺數(shù)據(jù)庫是其中的一種方法。

在程序發(fā)布的過程中,要完成對ODBC數(shù)據(jù)源的動態(tài)注冊,有以下幾種方法:

1) 在安裝程序制作軟件如“InstallShield” 中設(shè)置。

2) 利用軟件工具的注冊(Registry)函數(shù)來實(shí)現(xiàn)。

3) 利用Windows的API函數(shù)來實(shí)現(xiàn)。

本文主要介紹如何利用PowerBuilder8.0的注冊函數(shù)來實(shí)現(xiàn)動態(tài)注冊O(shè)DBC數(shù)據(jù)源,以Adaptive SQL Anywhere 7.0數(shù)據(jù)庫如何在注冊表中動態(tài)配置ODBC信息。

1 ODBC基本概念

作為經(jīng)常被采用的的數(shù)據(jù)庫接口,ODBC接口是Microsoft公司制定的標(biāo)準(zhǔn),它采用SQL作為標(biāo)準(zhǔn)連接的數(shù)據(jù)庫。ODBC接口可以單個(gè)應(yīng)用程序存取多個(gè)數(shù)據(jù)庫管理系統(tǒng),DBMS連接是用各數(shù)據(jù)庫管理系統(tǒng)的驅(qū)動程序來實(shí)現(xiàn)。WOSA是Microsoft公司的標(biāo)準(zhǔn)的查詢方法、標(biāo)準(zhǔn)化的錯誤代碼集、連接和注冊到DBMS的標(biāo)準(zhǔn)的方法以及標(biāo)準(zhǔn)化的數(shù)據(jù)類型。ODBC的基本原理是為用戶提供簡單、標(biāo)準(zhǔn)、透明的數(shù)據(jù)庫的公共接口,為開發(fā)廠商提供標(biāo)準(zhǔn)去實(shí)現(xiàn)底層的驅(qū)動程序,同時(shí)驅(qū)動對用戶來說是透明的,允許根據(jù)不同的DBMS采用不同的技術(shù)加以優(yōu)化實(shí)現(xiàn)。ODBC出現(xiàn)以后,用戶安裝不同的DBMS驅(qū)動就可用同樣的SQL語句中實(shí)現(xiàn)在不同DBMS上進(jìn)行一樣的操作。ODBC帶來了數(shù)據(jù)庫連接方式的變革,在傳統(tǒng)方式中,開發(fā)人員要熟悉多個(gè)DBMS及其API,而一旦DBMS的客戶端出現(xiàn)改動,就會往往要求用戶端重新編建或者驅(qū)動重新安裝,那么這就給開發(fā)和維護(hù)工作帶來很大的困難。在ODBC方式中,無論底層網(wǎng)絡(luò)環(huán)境如何,也無論采用何種的DBMS,用戶都可以在程序中都使用同一個(gè)標(biāo)準(zhǔn)代碼,也無需逐個(gè)了解每個(gè)DBMS和API的特點(diǎn),程序不因底層的變化而重新編建或修改,這樣就減輕了開發(fā)維護(hù)的工作量,縮短了開發(fā)周期。ODBC已為數(shù)據(jù)庫供應(yīng)商組織內(nèi)部所認(rèn)可,并且為眾多應(yīng)用軟件廠商和其他開發(fā)商使用,隨著SQL的推廣和規(guī)范,用戶和開發(fā)商會更加依賴于ODBC。

Microsoft Developer Studio為大多數(shù)標(biāo)準(zhǔn)的數(shù)據(jù)庫格式提供了32位ODBC驅(qū)動器,標(biāo)準(zhǔn)數(shù)據(jù)格式有:SQLServer、Access、Paradox、dBase、Foxpro、Excel、Oracle、Sybase以及Microsoft Text。Microsoft的ODBC標(biāo)準(zhǔn)主要是應(yīng)用在它的Windows操作平臺上,因此只要運(yùn)行于Windows操作平臺上的應(yīng)用程序都可以使用ODBC數(shù)據(jù)庫接口。使用ODBC數(shù)據(jù)庫接口,可以實(shí)現(xiàn)數(shù)據(jù)庫和前端開發(fā)軟件分離,實(shí)現(xiàn)三級模式的數(shù)據(jù)庫管理,極大的方面了程序員的開發(fā)及數(shù)據(jù)庫的安全性。

2 PowerBuiler8.0數(shù)據(jù)庫接口

2.1 PowerBuilder8.0數(shù)據(jù)庫接口

無論是本地?cái)?shù)據(jù)庫系統(tǒng),還是遠(yuǎn)程數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)庫管理系統(tǒng)都會在本地向訪問數(shù)據(jù)庫的用戶提供基于這些數(shù)據(jù)庫管理系統(tǒng)的DLL,DLL中包含了數(shù)據(jù)庫廠商開發(fā)給用戶的各種API,從而允許用戶完成數(shù)據(jù)庫的定義和使用。API實(shí)際上就是通常所說的數(shù)據(jù)庫驅(qū)動程序。對于本地的數(shù)據(jù)庫管理系統(tǒng),如果安裝了這種數(shù)據(jù)庫產(chǎn)口,數(shù)據(jù)庫驅(qū)動程序就自動安裝。對于不在本地的數(shù)據(jù)庫管理系統(tǒng),在遠(yuǎn)端的服務(wù)器安裝了數(shù)據(jù)庫產(chǎn)品后,還需要安裝客戶端程序,然后通過客戶端程序訪問數(shù)據(jù)庫。在Windows操作系統(tǒng)下,這些接口是通過一個(gè)或多個(gè)動態(tài)鏈接庫文件(DLL)來實(shí)現(xiàn)的,而這些DLL包含了操縱和定義這種類型的數(shù)據(jù)庫的API。PowerBuilder8.0本身有一個(gè)Adaptive Server Anywhere7.0的數(shù)據(jù)庫,DBODBC7.DLL是提供給用戶的接口,用戶可以在程序中進(jìn)行調(diào)用。

PowerBuilder8.0提供了對各種數(shù)據(jù)庫的強(qiáng)大支持,這種對數(shù)據(jù)庫的支持體現(xiàn)在兩個(gè)方面。

一方面,PowerBuilder8.0向數(shù)據(jù)庫應(yīng)用程序提供了各種數(shù)據(jù)庫的接口,使得應(yīng)用程序能夠訪問各種不同的異構(gòu)的數(shù)據(jù)庫管理系統(tǒng)。

另一方面,PowerBuilder8.0集成開發(fā)環(huán)境中向開發(fā)人員提供了操縱和定義各種數(shù)據(jù)庫的工具。PowerBuilder8.0的數(shù)據(jù)庫的接口有:

1) 實(shí)現(xiàn)了基于ODBC、JDBC和OLE DB標(biāo)準(zhǔn)通用接口。

2) 實(shí)現(xiàn)了基于各種大型的遠(yuǎn)程數(shù)據(jù)庫管理系統(tǒng)專用接口。

在安裝PowerBuilder8.0的過程中,PowerBuilder8.0的安裝程序會讓我們選擇要安裝哪些數(shù)據(jù)庫接口。在PowerBuilder8.0中,這些接口也是作為DLL文件而存在于系統(tǒng)中的。PowerBuilder8.0通過它的數(shù)據(jù)庫接口和具體的數(shù)據(jù)庫管理系統(tǒng)進(jìn)行交互。此數(shù)據(jù)庫接口實(shí)際上就是一組API的集合。此API與各數(shù)據(jù)庫管理系統(tǒng)提供的API相比,后者一般都比較龐大并且復(fù)雜,而且不同數(shù)據(jù)庫管理系統(tǒng)的API有非常大的不同。對于不同的數(shù)據(jù)庫管理系統(tǒng),PowerBuilder8.0的數(shù)據(jù)庫接口基本上都能以相同的模式來實(shí)現(xiàn)同一功能,這樣就很便于程序員從一種數(shù)據(jù)庫管理系統(tǒng)順利地遷移到另一種數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫接口對各種數(shù)據(jù)庫管理系統(tǒng)提供的原始API進(jìn)行了封裝,使得能夠忽略很多數(shù)據(jù)庫訪問細(xì)切,透明地使用底層的數(shù)據(jù)庫,并把底層的實(shí)現(xiàn)細(xì)節(jié)封裝起來。endprint

2.2 PowerBuilder8.0的數(shù)據(jù)庫接口

PowerBuilder8.0支持的數(shù)據(jù)庫接口,選擇Tools\Database菜單,在彈出Database中列出了PowerBuilder8.0已經(jīng)安裝了的數(shù)據(jù)庫接口。

在ODBC中每種數(shù)據(jù)庫接口都是三個(gè)字符的簡稱,點(diǎn)開左邊的“+”按鈕,可以看見該數(shù)據(jù)庫接口所攜帶的工具,以及該數(shù)據(jù)庫接口下的數(shù)據(jù)庫描述文件。在ODBC接口下,有一個(gè)已建立的數(shù)據(jù)庫描述文件,另外還有幾種與該接口相關(guān)的工具。上圖中的接口所支持的數(shù)據(jù)庫管理系統(tǒng)為關(guān)系型DBMS,而且大多都支持客戶機(jī)/服務(wù)器模式。為了與數(shù)據(jù)庫管理系統(tǒng)進(jìn)行連接,除了需要PowerBuilder8.0自身攜帶的接口外,還需要數(shù)據(jù)庫廠商所提供的接口文件。PowerBuilder8.0的數(shù)據(jù)庫接口是動態(tài)鏈接庫,而廠商提供的接口文件中則包含了可以供PowerBuilder8.0調(diào)用的應(yīng)用編程接口。在PowerBuilder8.0中,數(shù)據(jù)庫接口分兩類:

1) 通用接口:ODBC接口、JDBC接口和OLE DB接口。

2) 專用接口:Oracle8.x,Oracle8i接口和Informix v9.x接口。

PowerBuilder8.0數(shù)據(jù)窗口、ODBC接口、ODBC驅(qū)動管理程序以及數(shù)據(jù)的驅(qū)動程序相互關(guān)系。

3 使用ODBC注冊

PowerBuilder8.0是快速的客戶端開發(fā)工具,在應(yīng)用中必須與數(shù)據(jù)庫管理結(jié)合起來才能運(yùn)行,與數(shù)據(jù)庫的連接通過ODBC接口來實(shí)現(xiàn)。在ODBC中配置數(shù)據(jù)源后,在程序代碼中連接數(shù)據(jù)庫,同時(shí)對數(shù)據(jù)庫進(jìn)行各種數(shù)據(jù)庫的操作。PowerBuilder8.0開發(fā)的程序最終完成并交給用戶使用,要求計(jì)算機(jī)自己能自動配置ODBC數(shù)據(jù)源,這樣就減少了很多的困難。

注冊表是計(jì)算機(jī)系統(tǒng)的核心數(shù)據(jù)庫,里面存放著各種參數(shù)、應(yīng)用程序和計(jì)算機(jī)系統(tǒng)信息。在實(shí)際的運(yùn)用編程中,要對注冊表進(jìn)行必要的訪問和修改。在PowerBuilder8.0中,采用注冊函數(shù)對系統(tǒng)注冊表的訪問,可以方便地設(shè)置和獲取應(yīng)用程序及用戶設(shè)置的信息。計(jì)算機(jī)中所有的數(shù)據(jù)源在注冊時(shí),同時(shí)對注冊表都進(jìn)行記錄,對注冊表中的項(xiàng)目進(jìn)行相應(yīng)的修改和填寫,這些信息都會在計(jì)算機(jī)軟件啟動時(shí)進(jìn)行確認(rèn)、啟動和應(yīng)用。與ODBC相關(guān)的鍵有:

HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\ODBC Driver中記錄了所有已安裝的ODBC驅(qū)動程序。

HKEY_LOCAL_MACKINE\software\ODBC\ODBCINST.INI中記錄有相關(guān)的ODBC驅(qū)動程序信息。

HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources中記錄有數(shù)據(jù)源的類型。

HKEY_CURRENT_USER\software\ODBC\ODBC.INI中記錄有數(shù)據(jù)源的詳細(xì)信息。

單擊Windows的“開始”菜單,選擇“運(yùn)行”項(xiàng),在打開的窗口中輸入“regedit”命令,再單擊“確定”按鈕,便可在打開的“注冊表編輯器”中查看或編輯注冊表信息。

PowerScript提供的注冊表函數(shù)用到的是:RegistrySet()。

功能:在系統(tǒng)注冊表中設(shè)置或創(chuàng)建指定鍵,如果要設(shè)置的鍵名或要設(shè)置的值不存在,則先建立再賦值。函數(shù)格式:Integer RegistrySet(key,valuename,valuetype,value)參數(shù):

key:指定鍵名,String類型。

valuename:要設(shè)置或創(chuàng)建的鍵值名,String類型。如果注冊表中不存在指定值名,該函數(shù)將創(chuàng)建新的值名。

valuetype:設(shè)定鍵值的數(shù)據(jù)類型,RegistryValueType枚舉類型。

Value:要設(shè)置的值,其數(shù)據(jù)類型應(yīng)該與valuetype參數(shù)指定的類型相匹配。返回值:函數(shù)執(zhí)行成功時(shí)返回1,發(fā)生錯誤時(shí)返回-1。如果Valuevariable的數(shù)據(jù)類型與valuetype參數(shù)指定的類型不匹配,將引發(fā)運(yùn)行錯誤。

程序中“注冊”按鈕的具體代碼如下:

4 結(jié)束語

在計(jì)算機(jī)系統(tǒng)里,ODBC數(shù)據(jù)源作為計(jì)算機(jī)的數(shù)據(jù)庫信息會被完全的保存和注冊。當(dāng)需要求改注冊表信息時(shí),在運(yùn)行對話框里輸入regedit,然后回車,找到HKEY_CURRENT_USER\software\ODBC\ODBC.INI,就會發(fā)現(xiàn)這里已經(jīng)有了基本的注冊信息,每個(gè)鍵對應(yīng)了一個(gè)用戶DSN數(shù)據(jù)源。在這里可以直接通過程序向系統(tǒng)中添加ODBC數(shù)據(jù)源,也可以在windows系統(tǒng)下注冊。不同之處在于,如果采用程序注冊信息,會是用戶使用很方面,減少了不必要的麻煩,提高了工作效率。

參考文獻(xiàn):

[1] 范翠香. Authorware7中訪問SQL數(shù)據(jù)庫數(shù)據(jù)的兩種方法研究[J].微型機(jī)與應(yīng)用,2014(17).

[2] 王超.巧用PowerBuilder的數(shù)據(jù)管道[J].生物技術(shù)世界,2014(5).

[3] 盧守東.PowerBuilder應(yīng)用程序的數(shù)據(jù)庫連接技術(shù)[J].科技情報(bào)開發(fā)與經(jīng)濟(jì),2007(27).

[4] 申屹.VC6使用ODBC API操作Excel表的具體步驟[J].電腦知識與技術(shù),2014(5) .endprint

猜你喜歡
開放式數(shù)據(jù)庫
開放式數(shù)字座艙軟件平臺IndiGO
關(guān)于小學(xué)作文開放式指導(dǎo)的思考
開放式公園綠化中常見問題與改善措施
開放式計(jì)算機(jī)實(shí)驗(yàn)教學(xué)自主學(xué)習(xí)平臺
電子制作(2018年16期)2018-09-26 03:27:10
開放式彈簧機(jī)數(shù)控系統(tǒng)開發(fā)
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
瑞金市| 大港区| 社会| 鄂温| 灵川县| 瑞丽市| 图木舒克市| 平和县| 上杭县| 芒康县| 荆州市| 博野县| 平罗县| 晴隆县| 海口市| 稷山县| 盐边县| 兴化市| 台中市| 沿河| 洛阳市| 凉山| 肥城市| 禄丰县| 肥东县| 礼泉县| 曲周县| 崇仁县| 临桂县| 湘乡市| 万宁市| 荣成市| 牙克石市| 彰化市| 尼木县| 荆门市| 阿拉善右旗| 射阳县| 台东市| 延寿县| 鹤峰县|