查字典论文网 >> 中文图形化数据库动态操纵的实现

中文图形化数据库动态操纵的实现

小编:

中文图形化数据库动态操纵的实现 中文图形化数据库动态操纵的实现 信息技术论文 更新:2006-4-8 阅读: 中文图形化数据库动态操纵的实现【摘要】 介绍了采用PowerBuider开发工具编程,实现数据库动态操纵(查询、插入、修改、删除)的设计思路和方法,该程序具有中文图形界面的突出特点。 【关键词】数据库,动态操纵,PowerBuilder,中文,图形界面

The Implementation of Database Dynamic Manipulation with Chinese Graphical User Interface.

Liang Lunfa

(The Library of Beijing University of Posts & Telecommunications, Beijing)

【Abstract】This paper presents a method to implementing Database Dynamic Manipulation(query,insert,update,delete) by using PowerBuilder;this program has distinct characters which can supply chinese graphical user interface.

【Keywords】Database, Dynamic manipulation, PowerBuilder, Chinese , Graphical User Interface

1.序言

数据库操纵包含查询(select)、增加(Insert)、更改(update)和删除(delete)四种操作。要实现对数据库的操纵,必须键入类似于select (表序列)、 from (列序列)、 where (条件表达式序列)之类的SQL语句,这需要操作员对SQL语句以及数据库结构有充分的了解。是否可以在我们开发的各系统的数据库管理中不需这样麻烦,而只要点击几下鼠标就能完成对数据库的操纵呢?这就是“中文图形化数据库动态操纵”的出发点。

PowerBuilder是一个面向对象的用于构造基于客户/服务器(Client/Server)数据库应用系统的开发工具,具有强大的数据库应用程序开发功能,尤其是它提供的数据窗口(Data Window)专利工具,使其能够更加方便有效地访问与操纵数据库。实现本文所述功能的总体思路是:充分利用PowerBuilder数据窗口技术,在数据窗口中使英文字符和中文说明相对应,通过执行由操作数据窗口动态生成的SQL字符串,实现数据的中文图形化动态操纵功能。

笔者在开发“中图博览会业务管理系统”时,对其数据操纵的功能实现作了比较深入的研究,采用PowerBuilder6.5为开发工具,在UNIX操作系统和Sybase 11数据库系统环境下开发出了一个具有中文图形界面、可以实现数据库动态操纵功能的系统模块。通过该模块提供的数据库操作方法,数据库管理人员可高效方便地进行数据操纵。本文将以该开发环境为例对实现数据库动态操纵功能的设计思路和关键技术作扼要的叙述。

    功能分析

    典型的SQL语句的结构简单列举如下:

    (1) 查询:SELECT〈目标列〉FROM〈目标表〉WHERE〈条件表达式〉

    (2) 插入:INSERT INTO〈目标表(目标列)〉 VALUES (目标列赋值)

    (3) 更新:UPDATE 〈目标表〉 SET〈(目标列=赋值)序列〉WHERE 〈条件表达式〉

    (4) 删除:DELETE FROM 〈目标表〉WHER〈条件表达式〉

    通过分析,从上面四种操作中抽象出四个公共元素,即:目标表、目标列、赋值和条件表达式,这四个元素可以在程序中用字符串代替。因此可以设计4个数据窗口,一个放要操纵的数据表,一个放数据列,一个放关系运算的检索条件,一个放赋值列。在程序中利用数据窗口灵活的数据控制功能,通过鼠标点击选择相关的数据,动态生成SQL语句。

    我们认为实现该功能主要有以下关键技术:

    (1)操作界面的中文化;

    (2)条件表达式的构建;

    (3)要运行字符串格式的SQL语句,必须在字符串中考虑数值类型的转换;

    (4)执行查询操作后动态显示查询结果。

    3.设计思路

    针对上面提到的关键技术,下面提出具体的设计实现思路:

    (1)采用PowerBuilder工具建立数据表的时候,可以对数据表和列进行说明,这些说明可采用简明的中文。数据表创建完成以后,PowerBuilder的系统表pbcattbl、pbcatcol和syscolumn分别记录了我们建立的表和列的各种信息,包括表和列的说明、列类型。我们每建立一个表,系统就在pbcattbl增加一条记录,在pbcatcol、syscolumn增加对应于表的列数的多条记录。这样,我们就可以利用这些特性来实现中文图形化的功能。

    (2)通过分析where子句的结构,我们可以抽象出该数据窗口应该包括以下的内容:“序号”+“左括号”+“名称”+“比较符”+“条件”+“右括号”+“逻辑符(如有多行条件)”,因此可以设计一个数据窗口对象,使它包含如上的七列,其中“左括号”、 “比较符”、“右括号”、“逻辑符”等内容是固定的,编辑属性可以是下拉列表控件,而“名称”和“条件”要随选择的表和行的不同而不同,编辑属性必须是下拉数据窗口控件。

    (4)如果执行查询操作,应该将查询的结果显示出来,该查询结果会因选择的表、列和条件的不同而完全不同,因此可以调用syntaxfromsq1(sq1ca,str,strsty,error)函数和datawindow.create()函数,动态生成结果数据窗口。

    4.实现步骤

    (1)创建系统操纵数据表

    在建立数据表时,将表和各列的表头(Header)信息完整地用中文输入。读取系统表的相关数据:pbcattal中的Pbt_Tnam(表名)、Pbc_cmnt(表说明)字段,用数据管道工具传入到一个新表Sys_table表中,读取系统表pbcatcol中的Pbc_tname(表名)、Pbc_cnam(列名)、Pbc_Hdr(列说明)字段,用数据管道工具传入到一个新表Sys_column表中,并在Temp_column表中增加Pbc_sequence(列序号)、Pbc_Type(列类型)两个字段,以记录某列在表中的位置和类型。

    (2)创建数据窗口(Datawindow)对象

    数据表数据窗口d_table用来选择表,由Sys_table中的table_tnam和table_cmnt字段构成,只显示table_cmnt(表说明)列。

    数据列数据窗口d_column用来选择所选表中的列,由Sys_column中的col_tname、col_cnam、col_sequence、col_Hdr、col_type字段构成,并且实际只要显示col_Hdr(列说明)列,以col_table、col_sequence排序。

    条件数据窗口d_where构成动态SQL字符串的where子句,它是SQL字符串的关键。该数据窗口包括以下的七部分:“序号”+“左括号”+“名称”+“比较符”+“条件”+“右括号”+“逻辑符”。“名称”的Edit属性为下拉数据窗口(DropDownDW),数据窗口选择d_column,显示col_Hdr(列说明);“条件”的Edit属性中除选中Allow Editing(允许编辑)属性外,其余和“名称”完全一样;“比较符”、“逻辑符”、 “左括号”和“右括号”的Edit属性设置均可设置为下拉列表(DropDownListView),具体内容就不详细介绍了。

    赋值数据窗口d_value的功能是:当要执行“插入(insert)”或“更新(update)”操作时,接收操作员输入的数值。该数据窗口可以直接用字符串“col_cnam”、“col _Hdr”、“col_value”构成。

    (3)创建窗口对象并编码

    创建三个窗口(图略)。窗口w_choice用来选择执行的操作,上面放置4个单选按钮;窗口w_process用来进行数据表、列、条件和赋值的操作,窗口上主要放置有4个数据窗口控件,控件名(数据窗口对象)分别为dw_table(d_table),dw_column(d_column),dw_where(d_where),dw_value(d_value),还有一个执行操作的按钮(bt_submit);窗口w_query用来显示查询操作的结果,主要有一个数据窗口控件,该控件的数据窗口是由查询操作动态生成的。

    W_choice的功能相对简单,只要向w_process传递一个string类型的参数就可以了。

    W_process接收w_choice传来的参数,在open事件中对w_process做相应的处理。例如当接收的参数值为“query”(代表执行查询)时,该窗口的操作按钮显示为“执行查询”,并使赋值数据窗口(dw_value)的enabled属性为“假”;当接收的参数为“insert”(代表执行插入)时,该窗口的操作按钮显示为“执行插入”,并使条件表达式数据窗口(dw_where)的enabled属性为“假”。窗口内bt_submit(执行操作)按钮Clicked事件通过检查该按钮上显示的字符判断要执行的操作,同时运行SQL语句。如果执行的操作是“查询”,则将SQL语句作为参数传递给W_query窗口,如果是其他的操作,则直接调用EXECUTE IMMEDIATE :string语句,完成对数据库的操纵功能。

    W_query接收W_process窗口传来的参数,调用数据窗口动态生成函数显示查询结果。

      结论

      本文介绍了采用PowerBuilder开发工具编程实现数据库动态操纵功能的设计思路,并简单叙述了实现的方法和步骤。该方法可以在多种数据库系统环境下应用于各种数据库应用系统,包括电子商务系统的后台数据库管理。数据库动态操纵功能的灵活性,使得用户几乎可以完成所有可能的数据操纵要求(暂不能实现复杂查询功能,如Group分组)。但是数据库管理的灵活性和安全性是相互矛盾的,因此在以该思路开发具体的数据库应用系统时,应规划好数据库表的约束关系并在编码时充分考虑维护数据库的完整性;在运行时,应对该操作的权限进行严格控制。

热点推荐

上一篇:试论对中高职课程有机衔接的思考

下一篇:如何对幼儿进行德育教育论文 幼儿园关于德育教育之类的论文

最新感恩园长的演讲稿 幼儿园园长演讲稿(优质8篇)