计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

数据库管理系统中的模糊查询技术毕业论(2)

2015-06-04 02:33
导读:USE KTJBK COPY TO TEMP.DBF FOR ZFBJ(用户名称,m.field) SELECT 0 USE TEMP BROWSE NOEDIT USE DELETE FILE TEMP.DBF SELECT KTJBK USE 通过上面介绍的自定义函数实现了真正的模糊查询,然

USE KTJBK
COPY TO TEMP.DBF FOR ZFBJ(用户名称,m.field)
SELECT 0
USE TEMP
BROWSE NOEDIT
USE
DELETE FILE

TEMP.DBF
SELECT KTJBK
USE
通过上面介绍的自定义函数实现了真正的模糊查询,然而令人遗憾的是它的速度表现总使人感到美中不足。幸好在FoxPro中引入了结构化查询语言SELECT-SQL。

三、 利用FoxPro中SELECT-SQL语句的模糊查询方法

结构化查询语言SQL是FoxPro中值得骄傲的特色之一。利用SQL的SELECT语句
可以非常方便、极其快速地进行十分复杂的查询操作。特别值得推荐的是ELECT-SQL语句中的WHERE参数支持通配符“%(百分符号)”和“_(下划线符号)”,因此,对于查询条件为缩略语或简称的情况,可以非常简单地实现真正的模糊查询。这里,百分符号“%”代表0个或0个以上的任意字符,下划线符号“_”代表1个任意字符,它们只能与运算符LIKE搭配使用。

使用举例:设内存变量m.field,其值为用户输入的用户名称的简称,如“涪师专”,现在要在KTJBK.DBF中查询用户名称(字段名)为“涪陵师范高等专科学校”,或为“涪陵师专”,或为“涪师专”的全部记录,可以用下面的一段程序实现:

m. field="涪师专"
mc_cxtj="%"
FOR i=1 TO LEN(ALLTRIM(m.field)) STEP 2
mc_cxtj=mc_cxtj+SUBSTR(ALLTRIM(m.field),i,2)+"%"
ENDFOR
SELECT * ;
FROM KTJBK ;
WHERE KTJBK.用户名称 LIKE (mc_cxtj) ;
INTO CURSOR TEMP
程序说明:本程序运行时,先将m.field = "涪师专" 中插入四个通配符“%”,得到mc_cxtj ="%涪%师%专%",然后利用SQL的SELECT语句,从数据库KTJBK.DBF中选出字段变量“用户名称”符合“%涪%师%专%”格式的所有记录,输出到一个虚拟临时数据库TEMP.DBF中。

利用FoxPro中的结构化查询语言SELECT-SQL可以编写出很漂亮的通用查询程序。笔者在数据库管理系统的开发实践中,曾用FoxPro的屏幕生成器编写过一通用查询程序,其通用性和执行速度表现都非常好(本人愿抛砖引玉,奉献给有兴趣的《软件世界》读者,见附录),限于篇幅这里就不详细介绍了。

附录:《一个真正的通用查询程序》见磁盘文件TYCX.TXT(纯文本文件)或 (转载自科教范文网http://fw.nseac.com)
TYCX.DOC(WORD97文档)

参考文献:

1. 江英,杨欣 等翻译. FoxPro 2.5 使用与参考大全,清华大学出版社,1995
2. 章立民. FoxPro 2.5 for DOS 程序设计——提高篇,人民邮电出版社,1994

上一篇:不依赖高点阵字库实现屏幕汉字显示毕业 下一篇:没有了