设计可更新数据源表的本地视图
来源:优易学  2011-12-9 18:21:06   【优易学:中国教育考试门户网】   资料下载   IT书店

  我们在设计本地视图后,通常希望在表单应用中能更新相应数据来源的记录,即对视图添加、修改或删除的记录能反映到相应的数据表中去,实现这种更新数据源表的本地视图的方法如下。

  设置关键字段。要设计一个可更新数据源的本地视图,必须给本地视图指定一个关键字段,在更新数据源时,该关键字段将作为比较本地视图记录与数据源中记录的依据,由此判别记录是否发生了变化。可以指定多个字段组合为关键字段,以保证关键字段能唯一确定记录。如果本地视图对应有多个要更新的数据源表,则必须针对每一个数据源设置至少一个关键字段。
  一般地,应指定对应于数据源中主关键字或候选关键字的字段为视图的关键字段。
  指定可更新字段。只有被指定为可更新字段后,该字段才可更新数据源中对应的字段。点按字段名列表中要指定为可更新字段的字段左边铅笔符号列的位置,该位置也将出现一个按钮,点按该按钮使之出现一个对勾,表示已指定该字段为可更新字段。 没有指定为可更新字段的字段,是只读字段,尽管改变了视图中只读字段的值,它们也不能对数据源进行更新。
  可以点按左边的全部更新按钮,将所有非关键字段设置为可更新字段。

  选中更新条件页中的“发送SQL更新”复选框项。选中它后,才可将被更新的记录字段采用UpdateSQL语句对数据源中的表进行更新。

  选择检测更新冲突的方式。在更新条件页中有一个“SQLWHERE子句包括”框,其中的选项用以控制将哪些字段添加到WHERE子句中,在将视图修改传送到数据源表时,可以检测服务器上的更新冲突。冲突是由视图中的旧值(而不是指修改后的值)和数据源的当前值之间的比较结果决定的(OLDVAL() 和CURVAL() 之间比较)。如果两个值相等,则认为原始值未做修改,不存在冲突;如果它们不相等,则存在冲突,数据源返回一条错误信息。
  ---- 旧值和当前值之间的冲突所返回的错误为“错误1585:记录已被其他人修改”,或者是“错误1494:更新冲突。请使用TABLEUPDATE()进行强制更新或使用TABLEREVERT()回滚”。
  ---- “SQLWHERE子句包括”中包括如下选项:

  关键字段:如果在数据源表中有一个关键字字段被改变,设置WHERE子句来检测冲突。而对于由另一用户对数据源表中原始记录的其他字段所做的修改,则不进行比较。它是最保守的更新方式,完全不考虑在本地视图中输出的字段中哪些有可更新性,而只将本地视图中的所有记录用关键字段进行比较。

  关键字和可更新字段:如果另一用户修改了任何可更新的字段,设置WHERE子句来检测冲突。

  关键字和已修改字段:如果从视图首次检索(默认)以后,关键字字段或数据源表记录的已修改字段中,某个字段做过修改,设置WHERE子句来检测冲突。

  关键字段和时间戳:用于远程视图,对本地视图无用。
  选择更新数据源的方式。在更新条件页具有一个“使用更新”框,它提供了两种更新数据源的方式供选择,以指定字段如何在后端服务器上更新:
  SQLDELETE/INSERT方式:先删除数据源表中原来的记录,然后再插入一条新的在视图中被修改了的记录,即更新=删除+插入。

  SQLUPDATE方式:用视图字段中的变化来置换修改数据源表的字段值。 ---- 只有在仔细设置好上述各项内容之后,该本地视图才能用来更新数据源表数据。

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训