动态查询在人事管理系统中的应用

时间:2022-04-26 10:55:48

动态查询在人事管理系统中的应用

[摘 要] 本文通过对人事管理系统中自定义查询原理的分析,详细介绍了一种对所有字段可任意指定其条件,并可任意控制显示的字段及其顺序,实现动态查询的方法。

[关键词] 数据库 多条件 动态SQL查询

在数据库管理系统中查询不可缺少,现有的面向用户的查询系统大多是建立在固定的SQL查询语句上,查询时根据用户给定的值进行查询,实现比较简单。但用户的要求往往是多种多样的,当用户提出的查询要求需要多基本表连接时,就需要用户事先指定连接关系;而有时应用系统需求查询条件是动态的,由用户来实现相对较难。为此本文通过探讨其设计原理与实现过程,对学校人事管理系统中的自定义查询功能进行分析,提出了一种能根据用户需求,可任意控制显示的字段及其顺序,并可对所有字段任意指定条件,动态生成SQL查询语句,从而实现数据库动态查询的方法。

一、原理分析

1.设计原理

在查询过程中普通用户通常对于SQL语法比较陌生,基于这一点,我们将用户查询需求和SQL的生成分离开来,对于一般不熟悉数据库语言的用户更可让其集中注意力提出查询需求,而由系统去完成用户需求与SQL语句相应的转换。用户只需对用户表达式进行操作,无需与数据库打交道,由系统建立用户表达与数据库查询语句之间的联系,对用户的查询需求进行转换,动态生成可执行的标准SQL语句,并完成查询操作。

在动态查询程序设计过程中需要考虑其实用性,友好性,完备性。因此,在动态查询的设计时使用“与”、“或”、“非”3种逻辑关系可以将查询条件进行组合;使用括号可以改变逻辑关系之间的优先关系;另外我们还使用“包含”,“=”等6种比较符,只要进行合理的条件组合就能查出符合条件的记录。

2.实现过程

(1)输入查询条件。查询条件包括查询字段、比较符和字段内容。

(2)生成条件。当用户输入完查询条件时点击按钮使查询条件显示在查询条件显示栏中,同时查询条件也写入用于查询的字符串中。

(3)显示查询条件。在一个列表显示框中直接显示用户输入的复合查询条件。使用列表框的好处是如果查询条件已满,则激活右边的滚动块显示更多的查询条件。

(4)加入条件关系。用户如果想执行多条件查询,条件之间可以用“与”“或”“非”等逻辑关系连接,还可以使用括号将条件进行组合。

(5)查询操作。激活显示结果窗口时,执行生成的SQL语句,将结果置于DBgrid数据库表格中。

二、案例实现

1.查询窗口设计

为了实现交互操作的灵活方便,定义frm_sql和frm_exe 窗口对象,分别用于生成动态SQL 查询语句,窗口界面设计如下图。显示查询执行结果的窗体主要由一个DBgrid_sql数据库表格组成,这里从略。

图中主要控件及说明如下:

Cmb_yh为下拉列表框,功能为实现多条件间的“与”或“或”;Edt_va文本框功能为输入查询条件值;Btn_tj_add按钮功能为添加查询条件;Che_Lst_sql复选列表框功能为设置查询、显示字段; Btn_od_ad按钮功能为添加排序依据;Btn_display按钮功能为执行动态生成的SQL 查询语句,并激活显示查询结果窗口。

2.具体实现过程

程序的算法主要是变量tj、lb、px、sql是由窗体输入的值产生的。变量说明如下:

tj用来存储动态生成的查询条件;lb用来存储查询字段列表;px用来存储生成的查询结果排序依据子句;sql用来存储SQL 查询语句字符串,即“select”+lb+tj+px,如图所示则sql为:“select dw, ks (此处多个字段略) where (zc=‘讲师’) and (xl=’本科’)and (dw like ‘%机电%’) order by csrq”。

在Btn_display显示按钮中激活显示结果窗口,执行生成的SQL 语句,并将结果记录集置于DBgrid_sql数据库表格控件中。

三、结束语

本程序通过简单的窗口界面点击,生成多条件自由组合、显示字段及顺序任意定义的、动态SQL查询语句,从而实现动态查询,极大地简化了查询操作、提高了查询的灵活性,使用户把注意力更多集中在查询条件的设计上。用户也可根据需求,方便地将本程序思想移植到其他语言或其他的查询应用系统中。

参考文献:

[1]魏永山:数据库关联查询界面的设计与实现.山东科技大学学报(自然科学版), 第21卷第3期:34~36

[2]穆彤娜 于洪敏 张铁成:数据库系统综合查询方法研究.中国矿业大学学报,第35卷第2期:260~264

上一篇:浅析管理层持股对企业绩效的影响 下一篇:知识型员工的需求特征及激励模式研究