概述
盡管紫金橋組態(tài)軟件自身擁有一個強(qiáng)大的實時數(shù)據(jù)庫,但是鑒于關(guān)系數(shù)據(jù)庫在某些場合更加適用,所以組態(tài)軟件很多時候也需要與各種關(guān)系數(shù)據(jù)庫相連接,對關(guān)系數(shù)據(jù)庫進(jìn)行操作。Accesss、SQL Server等數(shù)據(jù)庫也許為我們所熟悉,但是一般我們較少接觸Oracle數(shù)據(jù)庫。Oracle數(shù)據(jù)庫是第一個開放式商品化的關(guān)系型數(shù)據(jù)庫,主要滿足銀行、金融、保險等企事業(yè)單位對大型數(shù)據(jù)庫的需求。下面就筆者的經(jīng)驗,對紫金橋組態(tài)軟件與oracle數(shù)據(jù)庫的連接做簡要論述。
軟件環(huán)境
一般而言,一個關(guān)系型數(shù)據(jù)庫系統(tǒng)是一個或者多個服務(wù)的集合,與具體的管理工具是不相干的。我們以oracle 10g home版本為例,假設(shè)oracle數(shù)據(jù)庫系統(tǒng)安裝在某一臺服務(wù)器上(假定IP為192.168.128.129),那么在需要訪問該數(shù)據(jù)庫的客戶機(jī)上需要安裝oracle 10g home版的客戶端。安裝完客戶端后,機(jī)器就帶有了一些管理工具,這些工具將方便我們的使用。同樣,該客戶機(jī)還需要安裝紫金橋組態(tài)軟件。
配置服務(wù)名
為了便于使用的方便,一般我們把某一個oracle數(shù)據(jù)庫系統(tǒng)上的某一個特定數(shù)據(jù)庫或者全局?jǐn)?shù)據(jù)庫做一個映射,稱為“服務(wù)名”,然后使用服務(wù)名即可訪問數(shù)據(jù)庫。使用Net Manager管理工具:
選擇“編輯”->“創(chuàng)建…”后按照向?qū)韯?chuàng)建一個服務(wù):
“網(wǎng)絡(luò)服務(wù)名”填寫的即是需要全局引用的服務(wù)名。
此處“主機(jī)名”可以填寫Oracle數(shù)據(jù)庫所在的服務(wù)器IP地址,或者網(wǎng)絡(luò)名。
上面假定了Oracle數(shù)據(jù)庫服務(wù)器上的全局?jǐn)?shù)據(jù)庫名稱為“GlobalDBName”
在完成之前,可以根據(jù)需要測試數(shù)據(jù)庫的連接。點擊“完成”,新建的服務(wù)名即完成:
紫金橋組態(tài)軟件連接oracle數(shù)據(jù)庫
眾所周知,在windows下,微軟有一個開放數(shù)據(jù)庫互連接口即ODBC,和一個數(shù)據(jù)庫訪問的的應(yīng)用程序接口即OLE/DB。
ODBC方式
1. 建立數(shù)據(jù)源:“控制面板”->“性能和維護(hù)”->“管理工具”中找到“數(shù)據(jù)源 (ODBC)”或運(yùn)行“odbcad32.exe”
雙擊打開,在“系統(tǒng)DSN”選項卡點擊“添加”
選擇相關(guān)驅(qū)動程序,如“Microsoft ODBC for Oracle”
然后填寫下面的設(shè)置:
此處“服務(wù)器”填寫前面“配置服務(wù)名”板塊中所配置的服務(wù)名。確定后,名為Ora1的數(shù)據(jù)源就建立完畢:
2. 紫金橋組態(tài)軟件連接數(shù)據(jù)源
在任何腳本編輯區(qū),使用用函數(shù)SQLConnect(Long ConnectID, String SourceDesc) 來連接數(shù)據(jù)源,其中ConnectID為連接標(biāo)識,連接成功為一個非負(fù)的整數(shù),SourceDesc為數(shù)據(jù)源描述,可以通過選擇數(shù)據(jù)源自動生成:
選擇之前建立的數(shù)據(jù)源:
輸入密碼:
生成連接字符串:
連接成功后,即可使用紫金橋組態(tài)軟件的SQL腳本函數(shù)進(jìn)行數(shù)據(jù)庫的相關(guān)操作了。
需要注意的是,數(shù)據(jù)源使用完畢不再使用時,或者退出程序前,需要使用SQLDisconnect(Long ConnectID)函數(shù)釋放數(shù)據(jù)源。
OLE/DB方式
該方式主要是在報表關(guān)系數(shù)據(jù)源點中使用。
1. 建立報表關(guān)系數(shù)據(jù)源點
在紫金橋組態(tài)軟件開發(fā)界面的“數(shù)據(jù)庫”選項卡->“點組態(tài)”中,創(chuàng)建一個“報表關(guān)系數(shù)據(jù)源”點,如下
聯(lián)結(jié)字符串選擇“聯(lián)結(jié)Oracle數(shù)據(jù)庫”,然后彈出對話框:
此處“服務(wù)名”填寫前面“配置服務(wù)名”板塊中所配置的服務(wù)名。這樣便自動生成了聯(lián)結(jié)字符串:
確定后,一個名為“Ora1”的報表關(guān)系源點就建好了。
2. 使用報表進(jìn)行關(guān)聯(lián)
在紫金橋組態(tài)軟件開發(fā)界面的窗口中,創(chuàng)建一個自由報表對象,雙擊進(jìn)入其屬性設(shè)置,點擊“關(guān)系數(shù)據(jù)庫聯(lián)結(jié)設(shè)置”:
看到如下設(shè)置畫面:
在“關(guān)系數(shù)據(jù)源點”處填寫先前建立的關(guān)系數(shù)據(jù)源點名稱“Ora1”,即把數(shù)據(jù)庫和自由報表關(guān)聯(lián)到了一起。
若自由報表名稱為FreeReport1,則在窗口中可以使用“#FreeReport1.”+自由報表SQL函數(shù)的方式進(jìn)行數(shù)據(jù)庫相關(guān)操作,例如:#FreeReport1.SqlSelectCmd("select * from table1");