第 10章 通用查询模块
10.0 引言
10.1 准备工作
10.2 全字段查询技术的实现
10.3 选字段查询窗口的设计
查询 是数据库管理系统中不可缺
少的功能 。
本章先给出一种可对任意指定的
表, 按所有字段, 任意指定条件进行
查询的技术, 我们称之为, 全字段查
询, 。 该技术新颖, 独特, 实现的查
询模块简单, 实用 。
然后介绍一个通用查询窗口, 可
实现对任意表的查询, 输出字段, 排
序字段, 查询条件都可以随意指定,
我们称之为, 选字段查询, 。
10.0 引 言
这两种查询, 技术方案不同, 做
出查询窗口的风格, 形式和用法也不
同, 它们使用方便, 灵活, 可挂接到
任何 PowerBuilder应用软件中, 从而
大大提高软件的开发效率, 两种查询
方式同时使用, 使系统功能更加丰富 。
采用的 关键技术 包括,对数据窗
口中任意字段指定查询内容, 获取任
意字段的字段名和字段类型, 数据库
中系统表信息的利用, 动态建立数据
窗口对象等 。
为了建立查询模块和测试查询效果,
我们 建立一个文件夹, 通用查询,, 打
开工作空间, PB8实例,PBW” 。 然后,
在文件夹, 通用查询, 中, 建立用于全
字段查询的 对象库 test_q.pbl,目标
serch_q.pbt,用于选字段查询的对象库
test_x.pbl,目标 serch_x.pbt。 在对象库
test_q.pbl中建立应用程序对象 serch_q,
在对象库 test_x.pbl中建立应用程序对
象 serch_x。
在, 通用查询, 文件夹中建立任意
一个测试数据库 。 这里我们不妨 建立一
个 ASA7.0数据库, 文件名为 test.db。
10.1 准备工作
为数据库 test.db建立 ODBC数据
源和配置文件, 数据源名和配置文件
均取名为 test。
在数据库 test.db中可建立若干个
用来测试的表 。 这里我们建立两个表,
一个叫 tjzl( 生产信息表 ), 另一个叫
nhxx( 农户信息表 ),
以上数据库和表只是为测试下面
介绍的通用查询模块和描述问题方便
而设置的 。 其实, 通用查询模块可以
对任意数据库的任意表进行查询 。
在 PowerBuilder中, 数据库中各表
的内容通常用 数据窗口对象 显示输出 。
在输出过程中, 我们可以通过程序设置
过滤条件, 达到对记录筛选查询的目的 。
但是如何让用户尽可能方便, 灵活地指
定过滤条件, 使查询更加有效和迅速,
是软件开发时必须要考虑的问题 。
下面给出一种方法, 对任意数据窗
口对象, 只要在任意字段上输入一个值,
然后, 选择一个关系运算符, 就可以得
到一个与该字段的关系表达式, 进一步,
还可以产生一般的逻辑表达式作为过滤
条件进行过滤, 达到查询的目的 。 下面
介绍具体实现步骤和有关技术要点 。
10.2.1 数据窗口对象、应用程序对象和菜单设计
10.2.2 窗口设计
10.2.3 使用
10.2 全字段查询技术的实现
1,建立两个测试用的数据窗
口对象 。 一个名为 d_nhxx( 农户
信息, 网格样式 ), 布局和预览
结果 。
2,打开应用程序对象 serch_q.
3,在应用程序对象中定义以下
两个全局变量:
4.建立一个弹出式菜单
m_popup,其中只有一个菜单条
选项 m_r(操作符)。
通用查询是在窗口中实现的, 技术
核心都在窗口的控件当中 。
1,窗口及控件
2,下拉列表框 ddlb_1
3., 擦除条件, 和, 开始查询, 按

4,查询内容的输入
5,查询条件的生成
6,图形按钮和, 退出, 按钮
至此, 一个可对任意数据窗口对象,
任意字段设置条件的通用查询窗口设计
完成 。
前面设计的查询窗口可作为一个通用
模块挂接到任意一个 PowerBuilder应用软
件当中, 挂接时只要修改窗口中下拉列表
框 ddlb_1的 item属性和 selectionchanged
代码, 然后打开该窗口即可 。
窗口打开后, 通常要做的第一件事,
是单击窗口中, 表名, 右边的下拉列表,
选择需要的表所对应的数据窗口对象 。 某
一数据窗口对象被选中后, 便显示在数据
窗口控件中, 同时改变窗口标题并显示出
记录总数和当前记录号 。
接下来便可指定条件进行查询 。
1,设置查询条件
2,开始查询
3,擦除和修改条件
4,记录翻阅
下 面 再 介 绍 一 个 在
PowerBuilder下实现的通用查询窗
口, 可实现对任意表的查询, 输
出字段, 排序字段, 查询条件都
可以随意指定, 我们称之为, 选
字段查询, 。
它与, 全字段查询, 技术方
案不同, 做出查询窗口的风格,
形式和用法也不同 。 两者同时使
用, 可互相取长补短, 使系统功
能更加丰富, 灵活 。
10.4 选字段查询窗口的设计
打开前面建立的应用程序对象
serch_x,对其 open事件编写 与 全
字段查询的应用程序对象 相同的
代码 。 也 就 是 设 置 事 物 对 象
SQLCA的参数, 数据库管理系统
为 ODBC,数据源仍为 test,进行
数据库连接, 连接成功后打开
w_serch。 只是此时的 w_serch 是
对象库 test_x.pbl中的 通用选字段
查询 窗口 。
10.3.1 应用程序对象
通用选字段查询也是在窗口中实
现的, 技术核心都在窗口的控件当
中 。
1,窗口布局
2,窗口实例变量和 ddlb_1代码
3,第一个标签页设计
4,第二标签页设计
5,第三标签页设计
6,窗口控件代码
10.3.2 窗口设计
以上设计的选字段查询窗口可作为一个通用模
块挂接到任意一个 PowerBuilder应用软件当中, 挂
接时只要 修改 窗口 中下拉列表框 ddlb_1的 item属性
和 selectionchanged代码, 然后 打开该窗口 即可 。
窗口打开后, 通常要做的第一件事, 是单击窗
口中, 表, 右边的下拉列表, 选择需要的表 。 表被
选中后, 相应的字段标题便显示在三个标签页的列
表框中 。
接下来可选择输出字段, 排序字段, 指定条件
进行查询 。
1,选择输出字段
2,设置查询条件
3,设置排序字段
4,开始查询
5,打印
10.3.3 使用