首页 百科知识 使用视图更新基表数据

使用视图更新基表数据

时间:2022-10-21 百科知识 版权反馈
【摘要】:在视图中更新数据与在表中更新数据相似。这时,可以看到视图中对姓名字段的修改并没有影响基表,因为,没有设定它们为可更新字段;选择“成绩”表,相应学生的成绩字段被更新,表示设定的可更新字段是有效的。这说明了如果视图中的某个字段没有设置为可更新的,运行视图时,虽然也可以在浏览窗口中修改这个字段,但修改的结果不会送到它所引用的基表中。

5.3.4 使用视图更新基表数据

视图不仅可以显示数据,而且可以更新数据。在视图中更新数据与在表中更新数据相似。并且,使用视图还可以对其基表进行更新,为此,需要在视图设计器的“更新条件”选项卡中设置关键字段、可更新字段和设置“发送SQL更新”选项。下面举例来说明如何使用视图的这个功能。

例5-22:建立学生成绩视图,包含下列信息:学号、姓名、课程名称、成绩、补考成绩字段,并使“成绩”和“补考成绩”字段是可以更新的,其他字段为不可更新的(这里的更新是指对基表的更新)。

由于在视图设计器中,只有“更新条件”选项卡是查询设计器所没有的,其余选项卡的设置与查询设计器基本一样,所以,这里主要介绍“更新条件”选项卡的使用。

在视图设计器中,单击“更新条件”选项卡,设置更新条件。

其中,“表”框用于选择可更新的表;“字段名”框用于设置关键字段和可更新的字段,字段名左边钥匙图标列按钮用于设置关键字段,铅笔图标列按钮用于设置可以更新的字段,必须先设置关键字段,才能选取可修改的字段。视图根据关键字段的值来定位需要更新的记录。通常在VFP中,设置关键字段的原则为某一个表的关键字段;“发送SQL更新”复选框用来设置是否把视图中修改的结果传回到基表中。

本例中,在项目管理器中选择前面创建的视图xs_cj_view,选择“修改”命令。

或者在命令窗口中输入命令:

  OPEN DATABASE sjk

  MODIFY VIEW xs_cj_view

显示“视图设计器”,可以对xs_cj_view视图作相应修改处理。

由于要更新的表是“成绩表”的成绩和补考成绩字段,因此,在“字段”选项卡中,首选添加成绩表的学号、课程代号、补考成绩字段,移去学生表的学号字段,并调整相应位置;在“更新条件”选项卡中,设置的关键字段为成绩表中的学号和课程代号字段,可更新的字段设置为成绩和补考成绩字段。选择“发送SQL更新”复选框,设置表为可更新的,如图5-23所示,将修改后的视图存盘。

img206

图5-23 视图设计器的更新条件对话框

为了验证视图更新基表数据的效果,可做如下实验。

在项目管理器中选择视图xs_cj_view,单击“浏览”按钮,然后修改一个学生的姓名、课程、成绩字段,在视图中可看到这些字段的值都已被改掉。关闭视图浏览窗口,选择“学生”表,单击“浏览”按钮。这时,可以看到视图中对姓名字段的修改并没有影响基表,因为,没有设定它们为可更新字段;选择“成绩”表,相应学生的成绩字段被更新,表示设定的可更新字段是有效的。这说明了如果视图中的某个字段没有设置为可更新的,运行视图时,虽然也可以在浏览窗口中修改这个字段,但修改的结果不会送到它所引用的基表中。

更新字段也可以用命令方式来进行设置:

(1)设置关键字段

=DBSETPROP("视图名.字段名","Field","Key Field",.T.)

(2)设置可更新字段

=DBSETPROP("视图名.字段名","Field","UpdateName","基表.字段名")

=DBSETPROP("视图名.字段名","Field","Updatable",.T.)

(3)设置“发送SQL更新”

=DBSETPROP("视图名","View","Send Updates",.T.)

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈