賈思楊,李 家
(遼寧師范大學 城市與環境學院,遼寧 大連 116029)
?
列模板技術在Oracle中的應用與實現
賈思楊,李 家
(遼寧師范大學 城市與環境學院,遼寧 大連 116029)
傳統的Oracle數據庫采用自帶的SQL*PLUS與用戶交互,基于cmd的這種交互方式需要繁雜的口令來支撐,對于初學者存在一定的困難,于是很多用戶選擇更加直觀的PLSQL Developer,這種圖形化工具給用戶帶來了更好的交互體驗。本文在PLSQL Developer集成開發環境中使用通用的列模板技術,進一步提升數據庫的交互操作性,易于掌握和使用,從而更好地服務客戶。
數據庫;集成開發;列模板;DevExpress ASPxGridView
Oracle數據庫是目前世界上使用最為廣泛的數據庫管理系統之一,作為一個通用的數據庫,它具有完整的數據管理功能;作為一個關系數據庫,它是一個完備關系的產品;作為分布式數據庫,它實現了分布式處理功能[1]。從Oracle 11g開始,取消了客戶端形式的管理界面,只有網頁形式的dbconsole,對于Oracle的初學者而言,操作Oracle自帶的SQL*PLUS需要掌握大量的數據庫口令,因此很多人選擇借助第三方軟件PLSQL Developer,以圖形界面工具的形式操作數據庫。
PLSQL Developer是一個集成開發環境,專門面向Oracle數據庫存儲程序單元的開發。使用PL/SQL Profiler可以瀏覽每一執行的PL/SQL代碼行的時序信息,更進一步,還可以自動獲取所執行的SQL語句和PL/SQL程序設計信息[2]。在PLSQL Developer中使用基于DevExpress的列模板技術,可以帶給用戶耳目一新的交互體驗,進一步提升數據庫的交互操作性,易于掌握和使用,從而更好地服務客戶。
DevExpress是一流的控件套包產品。它功能強大,是.NET基礎控件擴展包,可以快速開發出專業、強大的應用程序[3]。此外,可以采用DevExpress自帶的主題模板,進一步完善和美化交互界面,達到更好的使用效果。
系統基于B/S架構,采用C#和Javascript作為主要開發語言,Visual Studio 2013.NET作為開發環境,融合AJAX開發技術,集成DevExpress開發控件,是一種面向Oracle數據庫的模塊式開發模式。系統框架圖見圖1。

圖1 系統框架圖
1.1 編輯列的設定
傳統方式基于PLSQL Developer的對于Oracle的數據操作采用圖形界面,使用語句控制,本系統在列模板中直接嵌入編輯列,在編輯列中可以針對數據庫進行增、刪、改等數據操作,從而簡化操作步驟。對于編輯列的設定應在綁定數據庫時直接完成,主要代碼如下:
ASPxGridView1.SettingsEditing.Mode = GridViewEditingMode.EditForm;
GridViewDataDateColumn dateCol = new GridViewDataDateColumn();
ASPxGridView1.Columns.Add(dateCol);
編輯列添加完成之后,只需要在增、刪、改對應的服務器端事件中寫入對應的代碼,即可實現對應數據庫的編輯操作。另外,可以在服務器端寫入一個漢化方法,這樣可以將New,Insert,Delete直接漢化為增刪改操作。
增加了編輯列并漢化之后的列模板如表1所示。

表1 增加了編輯列并漢化之后的列模板
1.2 列模板主題的使用
在DevExpress中提供了近20種主題模式,可以根據不同用戶的不同需求采用不同的主題風格,從而改觀傳統數據庫列模板單調的使用效果,為用戶帶來更好的交互體驗。
在已經嵌入DevExpress的Visual Studio 2013中啟動ASP.NET Theme Deployer,將選好的主題模板保存在系統根目錄下(這里以Youthful主題模板為例),重新生成解決方案后,需要在Web.config文件中加入主題模板,同時在客戶端加入模板引用,主要代碼如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Theme="Youthful"%>
在此主題列模板基礎上,還可以設計方法實現高亮突出顯示鼠標選擇列的使用效果,主要代碼如下:
function onMouseOver(row) {
oldRow.className = oldCss;
oldRow.style.backgroundColor = oldBackgroundColor;
oldBackgroundColor = row.style.backgroundColor;
oldCss = row.className;
row.style.backgroundColor = "";
row.className = newCss;
oldRow = row;
}
1.3 數據庫模型構建的優化
在Visual Studio 2013中連接數據庫時可以在瀏覽器端自動生成增、刪、改等數據庫編輯代碼,這些在客戶端自動生成的代碼會以數據庫中對應的表結構為基礎,但在有些時候客戶會有新的需求,如果表結構發生變化,這些代碼就會失效。為了追求更可靠的交互模式,可以對這種自動模型構建方式進行優化,具體方式是注釋在客戶端自動生成的代碼,轉而通過在服務器端書寫代碼控制客戶端的效果實現,這種方法的好處在于可以根據具體需求來實現效果,減少數據的冗余,提升系統運行速度。
1.4 AJAX技術在列模板中的使用
AJAX相當于在用戶和服務器之間增加一個中間層,使用戶操作和服務器響應異步化。它不是將所有的用戶請求都提交給服務器處理,內存中的數據編輯、頁面導航、數據校驗這些不需要重新載入整個界面的需求可以交給AJAX引擎來執行,只有確實需要從服務器讀取新數據時,再由AJAX引擎向服務器發出一個異步請求[4]。所以用戶無需等待/請求響應,可以進行其他的操作[5]。
DevExpress控件將AJAX技術與ASP.NET編程模型無縫集成,為Web應用程序中的客戶端腳本和服務器語言之間架起了一座橋梁,實現了異步局部更新和定時刷新,從而減少了冗余數據的傳輸,減輕了服務器的負擔,避免了白屏現象[5]。
這里需要注意一點,在瀏覽器端的事件方法里需要將服務器端進程設置為false,方可達到AJAX無需等待/請求響應的效果,具體代碼如下:
function onclick(s, e) {
e.processOnServer = false;
}
1.5 數據庫子表超級鏈接
在數據庫中常存在一個數據表的子表,如果在主表和子表之間反復地切換,勢必會降低工作的效率,同時也加大了數據庫誤操作的幾率。本系統中在DevExpress控件的ASPxGridView中嵌入一個小窗口的表空間,通過在主表中將與子表對應的字段建立成超級鏈接的方式,直接通過主表訪問子表,并且這種訪問是基于AJAX技術的,擁有很好的交互效果。主要代碼如下:
HtmlIframe iframe1 = ASPxGridView1.FindDetailRowTemplateControl(e.VisibleIndex, "iframe1") as HtmlIframe;
object obj = ASPxGridView1.GetRowValues(e.VisibleIndex, "DEPTNO");
iframe1.Src = "Default2.aspx?deptno=" + obj;
建立在主表中訪問子表的列模板效果如圖2所示,在主表中點擊DEPTNO為20的超級鏈接,即可在子表中將所有DEPTNO為20的信息顯示出來。
本系統基于DevExpress ASPxGridView控件的列模板技術實現,打破了傳統列模板的使用方式,表現力更豐富;通過簡單點擊就可以對每個任務塊進行交互操作,克服了

圖2 在主表中訪問子表
以往B/S模式下的列模板只能看不能交互操作的弊病,開發了帶有強大AJAX功能的應用程序,實現了異步局部更新和定時刷新,避免了整頁刷新帶來的冗余數據傳輸以及白屏問題,減輕了服務器負擔,提供了更加友好的交互界面。根據本文給出的實現方法,可以很容易地采用ASP.NET 中的Gridview中的模板技術實現,或利用其他開發平臺中的相關技術實現[6]。
[1] 黃霞. Oracle 12c不可見字段的應用[J]. 電腦編程技巧與維護,2005(23):66,76.
[2] 徐鍇. 企業信用信息基礎數據庫和信用網的設計與開發[D]. 長沙:湖南大學, 2011.
[3] 張國梁.DevExpress圖表控件XtraCharts在監控軟件中的應用[J].電腦與電信,2011(6):44-46.
[4] 陳鋒敏.Ajax原理與系統開發[M].北京:清華大學出版社,2009.
[5] 仰燕蘭,金曉雪,葉樺. ASP.NET AJAX框架研究及其在Web開發中的應用[J]. 計算機應用與軟件,2011,28(6):196-198.
[6] 雪連,李家. 基于列模板技術的雙線條甘特圖的應用于實現[J].微型機與應用,2016,35(4):91-94.
The application and implementation of Oracle based on template column technology
Jia Siyang, Li Jia
(School of Urban and Environmental Sciences, Liaoning Normal University, Dalian 116029, China)
Traditional Oracle contacts with users by SQL*PLUS.This method based on cmd needs complicated orders,so it is hard for some rookies.Many users choose PLSQL Developer because which is convenient and brings better interactive experience on communication.This paper is based on general technology of column template in PLSQL Developer,aims at improving users’ communtcation with Oracle, and makes it more intuitively and can be operated easily, so it can offer better service for users.
database; integrated development; column emplate; DevExpress ASPxGridView
TP393.0
A
10.19358/j.issn.1674- 7720.2017.12.023
賈思楊,李家.列模板技術在Oracle中的應用與實現[J].微型機與應用,2017,36(12):78-79,83.
2016-11-30)
賈思楊(1990-),通信作者,男,碩士研究生,主要研究方向:地理信息系統集成開發。E-mail:752625537@qq.com。
李家(1957-),男,本科,副教授,主要研究方向:地理信息系統集成開發。