四、创建查询和视图
VFP的查询功能可以从一个或多个表中检索用户需要的数据,而且还可以对查询结果进行分组和排序。查询结果将产生一个独立的数据文件,但它仅作为输出使用。
4.1创建查询
VFP系统为建立查询提供了两种方法:一种是查询向导,另一种是查询设计器。
(1)使用查询向导创建查询
例14在“通讯录”表中查找身高在1.70米以上,要求查询结果中只显示编号、姓名、性别、角色、身高和电子邮箱字段内容。
操作步骤一:在项目管理器中选择“数据”选项卡,然后单击“查询”,再单击“新建”按钮。
操作步骤二:在打开的“新建查询”对话框中单击“查询向导”图标按钮,选择“查询向导”,再单击“确定”按钮,出现“字段选取”对话框,如图所示。



操作步骤三:选择“通讯录”表,并选取编号、姓名、性别、角色、身高和电子邮箱字段到“选定字段”列表框中。单击“下一步”按钮,出现“筛选记录”对话框,如图所示。
操作步骤四:输入查询记录的条件:身高>1.70。如果有两个条件,需要确定它们之间的运算关系:“与”或“或”运算。单击“下一步”按钮,出现“限制记录”对话框,确定查询结果中所包含的记录数,一般选择“数量”中的“所有记录”。



操作步骤五:选择保存查询设置的类型。例如,选择“保存查询”,单击“完成”按钮,以文件名“通讯录1”保存建立的查询,系统默认的扩展名为.qpr。
使用向导建立的查询是不能修改的,如果需要修改必须使用查询设计器。
运行一个查询,在项目管理器窗口的“数据”选项卡中,选择要运行的查询文件,单击“运行”按钮,屏幕显示查询结果。例如,运行“通讯录1”,满足条件的所有记录全部显示出来,如图所示。
(2)使用查询设计器创建查询
使用查询设计器可以根据用户的需求建立查询,既可以是简单条件的查询,又可以是复杂条件的查询,同时可以设置查询结果的输出去向。
例15 在“通讯录”表和“家庭成员”表中查询角色是“同学”的家庭成员情况。
操作步骤一:启动查询设计器。在项目管理器中选择“数据”选项卡,然后单击“查询”,再单击“新建”按钮,在打开的“新建查询”对话框中单击“新建查询”按钮,启动查询设计器,并打开“添加表或视图”对话框,分别将“通讯录”表和“家庭成员”表添加到查询设计器中。
操作步骤二:关闭“添加表或视图”对话框,这时在查询设计器窗口中添加了“通讯录”表和“家庭成员”表,如图所示。



操作步骤三:建立表间联接。在将“通讯录”表和“家庭成员”表添加到查询设计器时,两表之间有一条连线,这表示两个表之间已经建立了关联。在添加表时,如果两个表之间没有建立关联,则需要进行条件联接,可以通过查询设计器窗口的“联接”选项卡进行查看或设置,如图所示。



运行查询时,根据联接条件,来检索两个表中的记录。
操作步骤四:选择输出字段。在“字段”选项卡选择查询结果中的输出字段,例如,输出“通讯录”表中的编号、姓名、角色字段和“家庭成员”表中的姓名、称呼和职业字段,如图所示。



操作步骤五:设置查询条件。在“筛选”选项卡设置筛选条件:角色=“学生”,如图所示。如果是多个条件,根据要求使用逻辑运算符AND或OR将多个条件连在一起。



选择“排序依据”选项卡可以设置将查询结果按一个或多个字段值的升序或降序输出。选择“分组依据”选项卡可以设置将关键字段相同的记录只输出一条。
操作步骤六:以“通讯录2”为文件名保存查询后再运行。

4.2 创建视图
查询的结果只能供用户浏览使用,不能对其中的数据进行修改。用户可以创建视图修改数据。视图分为本地视图和远程视图两种类型。本地视图使用本地视图向导或视图设计器来创建。
例16 创建一个本地视图,检索“通讯录”表中所有男性记录的有关信息。
操作步骤一:启动视图设计器。在项目管理器窗口的“数据”选项卡中,选择“通讯录管理”库的“本地视图”,单击“新建”按钮,屏幕显示“新建本地视图”对话框,然后单击“新建视图”按钮,屏幕显示“视图设计器”窗口。
操作步骤二:将“通讯录”表添加到视图设计器窗口中。



操作步骤三:选择显示字段。例如,在“字段”选项卡中将“通讯录”表中的编号、姓名、性别、家庭住址和业余爱好字段添加到“选定字段”框中。
操作步骤四:确定筛选记录。在“筛选”选项卡中输入筛选条件:性别=“男”。单击!按钮,浏览结果。



如果对图所示的视图结果进行修改,修改的数据不会回存到“通讯录”表中。要更新数据,必须设置更新条件。为了修改数据表中的字段值,首先必须定义一个关键字段,系统根据关键字段列出源文件中与对应的记录,用户再进行修改操作。关键字段的设置必须是惟一的,若有重复值,则必须选取多个关键字来避免重复,否则系统将无法判断要更新的记录。
在“更新条件”选项卡单击“字段名”前钥匙图标列的复选按钮,在字段前标记“√”,这是设置的更新关键字,如图所示。如果设置更新字段,在该字段铅笔图标列标记“√”。如果要把修改的字段值加回存到源表中,必须选择“发送SQL更新”选项。



在“更新条件”选项卡中,“SQL WHERE子句包括”选项组可以指定用户将根据哪些字段比较视图中的旧值和原始表中的当前值。
在利用“更新条件”选项卡对字段进行更新设置后,可在视图窗口中修改可更新字段的内容,这时将更新后的结果保存到源表中,重新打开数据表可以观察修改后的结果。

上一页 下一页