贾思杨,李 家
(辽宁师范大学 城市与环境学院,辽宁 大连 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-),男,本科,副教授,主要研究方向:地理信息系统集成开发。