5.3.5 视图的操作
视图建立之后,用户不但可以用它来显示和更新数据,而且还可以通过调整它的属性来提高性能。处理视图类似于处理表,允许进行下列各种操作:
(1)使用USE命令打开或关闭一个视图。
(2)在“浏览”窗口中,显示或修改视图记录。
(3)数据库打开状态下,在“数据工作期”窗口中打开、浏览、关闭视图。
(4)用视图作为数据源,如在查询、视图、表格控件、表单或报表中应用。
一、视图的打开与浏览
用户既可以通过“项目管理器”,也可以借助VFP语言来使用视图。要使用一个视图,可以采用以下方式之一:
(1)在“项目管理器”中先选择一个数据库,再选择视图名,然后选择“浏览”按钮,在“浏览”窗口中显示视图。
(2)使用USE命令以编程方式访问视图。
例5-23:在浏览窗口中显示xs_cj_view:
OPEN DATABASE SJK
USE xs_cj_view
BROWSE
一个视图在使用时,将作为临时表在自己的工作区中打开。如果此视图基于本地表,则在VFP的其他工作区中同时打开基表。视图的基表是指由SELECT-SQL语句访问的表,此语句在创建视图时包含在CREATE SQL VIEW命令中。在上面的示例中,使用xs_cj_view视图的同时,xs、cj、kc表在其他工作区也自动打开。
如果此视图基于远程表,则基表将不在工作区中打开,而只在数据工作期窗口中显示远程视图的名称。
当基表数据变化时,可以重新打开视图,或使用REQUERY()函数,使基表的数据变化反映到视图中。
同表操作一样可以在不同的工作区中打开视图的多个实例。在默认情况下,每次使用视图时,都要去取一个新的数据集合。若不必重新查询数据源就可以再次打开视图的另一个实例,可以在命令窗口中使用USE视图NOREQUERY命令,或用USE视图AGAIN命令。这对于在多个工作区中打开一个远程视图的情况特别有用,因为不需要等待从远程数据源下载数据。
二、关闭视图与基表
关闭视图可以在“数据工作期”窗口中用“关闭”按钮、或在命令窗口中用USE命令、或用CLOSE TABLE命令、或用CLOSE DATABASE等命令关闭,同对表的操作一样。但在使用视图时,自动打开的基表并不在关闭视图时自动关闭,必须另外发出命令关闭它们,这与SELECT-SQL命令保持一持。同样,关闭基表也不会自动关闭视图,对于可更新的视图,若更新了数据,先前关闭的基表又会自动打开,这说明了视图的更新是采用SQL语句来完成的。
三、显示视图结构
显示表结构使用MODIFY STRUCTURE命令,而视图结构的显示不能使用MODIFY STRUCTURE命令,可以使用USE命令打开,用BROWSE命令浏览视图结构,若带NODATA子句的USE命令,可以仅打开视图而不下载数据。当想要看到远程视图的结构而又不想等待下载数据时,此选项非常有用。
例5-24:在浏览窗口中显示不带数据的xs_cj_view视图:
OPEN DATABASE SJK
USE xs_cj_view NODATA
BROWSE
四、创建视图索引
可以使用INDEX ON命令,为视图创建本地索引,创建过程与表一样。与表的索引不同,在视图上创建的本地索引非永久保存,它们随着视图的关闭而消失。
五、创建视图的临时关系
使用SET RELATION命令,可在视图索引之间或视图索引与表索引之间创建临时关系。
在使用SET RELATION命令对一个视图与一个表进行关联时,若要获得较好的性能,要在关系中设视图为父表,设表为子表。这是因为在临时关系中,子对象必须按其索引排序。表的结构索引是不断被维护的,因此可以快速访问;而对于视图,VFP要在视图每次激活时为其重建索引,因此很浪费时间。此外,如果使用数据环境,视图将不能被当作子对象,因为子对象的索引必须是定义的一部分,而视图并不支持此功能。
六、定制视图
同表一样,可以给视图字段设置标题、注释、默认值和规则。
若要设置视图字段属性,可在视图设计器对话框的字段选项卡中,选定要设置属性的一个字段,并选择“属性”,即可打开“视图字段属性”对话框,可以为该字段设置一些属性。
也可以用DBSETPROP()函数来设置字段属性。例如,用Default Value属性为视图字段指定默认值;用RuleExpression和Rule Text属性为视图字段创建规则。
七、修改视图
修改视图,可以采用以下方式之一进行:
(1)在“项目管理器”中选择视图名,再选择“修改”按钮,打开“视图设计器”。
(2)打开数据库,在命令窗口中,使用带视图名的MODIFY VIEW命令。
(3)打开数据库,在命令窗口中,使用CREATE SQL VIEW视图名AS SELECT<语句>等命令,以编程方式修改视图的SQL命令串,保存视图定义并覆盖原先的旧视图。
八、重新命名视图
可以使用项目管理器或RENAME VIEW命令重新命名视图:
(1)在“项目管理器”中先选择一个数据库,再选择要重命名的视图,然后从“项目”菜单中选择“重命名文件”。
(2)打开数据库,在命令窗口中,使用RENAME VIEW命令。
九、删除视图
可以使用“项目管理器”或DELETE VIEW命令从数据库中删除视图定义:
(1)若要删除视图,可在“项目管理器”中先选择一个数据库,再选定要删除的视图,然后选择“移去”。
(2)打开数据库,在命令窗口中,使用DELETE VIEW或DROP VIEW命令。
十、集成视图
可以在其他视图的基础上再创建视图。这样做的理由是:有时需要从多个其他视图中获取一部分信息,或者需要将本地和远程数据集成到单个视图中。一个基于视图的视图,或基于集成了本地表、本地视图或远程视图的视图,被称为多级视图。集成了其他视图的视图为顶层视图。在顶层视图与本地基表或远程基表之间,可以有多层次的视图。在使用多级视图时,顶层视图所基于的视图和各级视图的VFP基表将出现在“数据工作期”窗口中,远程表不会出现在“数据工作期”窗口中。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。