[摘 要]本文主要介紹在數據庫開發工具PowerBuilder環境下,連接數據庫SQL Server 2005過程中使用專用接口、ODBC和配置文件的不同方法,同時對不同連接方式的優缺點進行詳細的比較。
[關鍵詞] 數據庫管理系統; 接口; SQL Server 2005; PowerBuilder 11.0
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2010 . 16 . 035
[中圖分類號]F270.7;TP311.13 [文獻標識碼]A [文章編號]1673 - 0194(2010)16- 0090- 03
一、引言
SQL Server 2005 是一個全面的數據庫平臺,使用集成的商業智能(BI)工具提供了企業級的數據管理。SQL Server 2005 強大的數據庫引擎為關系型數據和結構化數據提供了更安全可靠的存儲功能,可以構建和管理用于業務的高可用和高性能的數據應用程序。
此外, SQL Server 2005 結合了分析、報表、集成和通知功能,使企業可以構建和部署經濟有效的 BI 解決方案,幫助企業團隊通過記分卡、Dashboard、Web Services 和移動設備將數據應用推向業務的各個領域。
而作為數據庫管理系統強有力的開發工具,Power Builder在通信、郵政、金融、醫療衛生、機械制造等行業的應用中,會經常選擇SQL Server 作為數據庫管理系統。因此,使用PowerBuilder與SQL Server數據庫連接尤為重要。
二、系統概述
現以開發商業化的酒店管理系統為例,使用PowerBuilder 11.0為前臺開發工具,SQL Server 2005為系統后臺數據庫管理系統,介紹使用不同的方式在PowerBuilder 環境中與SQL Server 2005連接的具體實現過程。具體接口圖如圖1所示。
三、連接實現與設計
1. 通過專用接口連接
通過Microsoft SQL Server的企業管理器,啟動SQL Server,或者在“開始”菜單中“運行”net start Mssqlserver命令也可以啟動SQL Server。
啟動PowerBuilder環境,打開PowerBuilder的數據庫畫板,選擇“MSS Microsoft SQL Server”,單擊鼠標右鍵,新建“New Profiles”(如圖2所示),按圖3所示范內容進行詳細配置。“Profile Name”中輸入配置文件的名稱,例如:Hotel。對于Server的配置可以輸入服務器的IP地址,也可以輸入服務器的名稱,缺省的本機服務器可用“(local)”替代。之后根據Microsoft SQL Server安裝過程中設置的Login ID和Password進行配置即可,DataBase一項直接輸入數據庫的名稱,最后可以通過選項卡“Preview”進行連接測試。如果出現“Connection Sucessful”的提示,表示在PB環境中通過專用接口已經成功和SQL Server的數據庫取得連接。
具體代碼如下:
// Profile HotelNew
SQLCA.DBMS = \"MSS Microsoft SQL Server\"
SQLCA.Database = \"HotelNew\"
SQLCA.ServerName = \"(local)\"
SQLCA.LogId = \"sa\"
SQLCA.AutoCommit = False
SQLCA.DBParm = \"\"
Connect using sqlca;//連接事務對象
IF SQLCA.SQLCODE < > 0 Then
MessageBox(″數據庫連接失敗!″,SQLCA.sqlerrtext)
Halt close
Else
MessageBox(″提示!″,″數據庫連接成功!″,)
End If
2. 通過通用接口ODBC連接
使用ODBC通用接口與SQL Server數據庫連接可以分為3個步驟:配置ODBC數據源、建立數據庫描述文件和編寫連接代碼。
(1) 配置ODBC數據源。打開“控制面板”中的“管理工具”中的“數據源”,添加新的“用戶DSN”,然后選擇驅動程序為“SQL Server”,單擊完成后,在出現的對話框中依次輸入數據源的名稱、服務器的名稱或IP地址,如果服務器是本地機,也可以用(local)替代服務器的名稱和IP地址。然后在“SQL Server身份驗證中”選擇“網絡登錄ID的Windows NT驗證”,之后在“更改為默認數據庫”中選擇要連接的數據庫即可。
(2) 建立數據庫的描述文件。啟動PB中的數據庫畫板,選擇ODB ODBC,單擊鼠標右鍵,選擇“New Profile”,然后在Connection選項中,依次輸入描述文件的名稱、連接的數據源的名稱,UserID中輸入dba,Password中輸入sql,最后通過Preview 進行測試,如果提高Connection Successful則表明連接成功。
(3) 具體的代碼如下:
// Profile Hotel
SQLCA.DBMS = \"ODBC\"
SQLCA.AutoCommit = False
SQLCA.DBParm = \"ConnectString=’DSN=Hotel;UID=dba;PWD=sql’\"
Connect using SQLCA; //連接事務對象
IF SQLCA.SQLCODE < >0 Then
MessageBox(″數據庫連接失敗!″,SQLCA.sqlerrtext)
Halt close
Else
MessageBox(″提示!″,″數據庫連接成功!″,)
End If
其中Hotel是PowerBuilder與SQL Server 2005連接的ODBC數據源,dba是SQL Server 2005數據庫連接的用戶名,sql是SQL Server 2005數據庫連接的用戶名密碼。這是PowerBuilder與SQL Serve進行連接最常見的也是最簡單的方式之一。該方法實際操作雖然比較煩瑣,但是數據庫的保密性較好,因為它完全封裝到源程序中,是初學者學習的最好方式。
3. 通過配置文件連接
在PB中通過配置文件與SQL Server進行連接,相對前兩種方法比較快捷、靈活。具體操作過程如下:首先在PB源程序的根目錄下建立擴展名為ini的文件,比如:HotelNew.ini,文件具體內容:
[HotelNew]
DBMS = \"MSS Microsoft SQL Server 2005\"
ServerName = \"clp2005\"http://服務器名稱
Database = \"HotelNew\"http://數據庫名稱
LogId = \"sa\"http://登錄數據庫的ID賬號
LogPass = \"\"
AutoCommit = \"true\"
設置pb應用程序的Open事件代碼:
String ls_db
gs_FileINI = \"./HotelNew.ini\"
ls_DB = \"HotelNew\"
SQLCA.DBMS = Profilestring(gs_FileINI, ls_DB, \"DBMS\", \"\")
SQLCA.ServerName = Profilestring( gs_FileINI, ls_DB, \"ServerName\",\"\")
SQLCA.Database = Profilestring(gs_FileINI, ls_DB, \"Database\", \"\")
SQLCA.LogId = Profilestring(gs_FileINI, ls_DB, \"LogId\", \"\")
SQLCA.LogPass = Profilestring(gs_FileINI, ls_DB, \"LogPass\", \"\")
IF Profilestring(gs_FileINI, ls_DB, \"AutoCommit\", \"\") = \"1\" THEN
SQLCA.AutoCommit = FALSE
ELSE
SQLCA.AutoCommit = TRUE
END IF
Connect using sqlca; //連接事務對象
這種連接方式,配置操作簡單,運用該方式進行不同數據庫的連接無須涉及源程序,只要更改配置文件即可,但是數據的保密性較差。
四、連接方式的特點與比較
以上3種連接方式的特點與比較見表1。
五、結束語
本文就PowerBuilder環境中與Microsoft SQL Server數據庫連接的不同方式的具體操作方式、特點做了初步的研究和分析,也為針對不同的環境和不同的情況,使用哪種方式進行連接提供了選擇方案。
主要參考文獻
[1] 劉志銘. PowerBuilder數據庫開發關鍵技術與實例應用[M]. 北京:人民郵電出版社,2004.
[2] 于洪文.PowerBuilder 9.0案例開發篇[M]. 北京:清華大學出版社,2004.
[3] 周綱.PowerBuilder項目開發實踐[M]. 北京:中國鐵道出版社,2003.