foxpro 取得离线视图

发表于:2007-07-02来源:作者:点击数: 标签:
获取离线视图是简单的:确信包含了视图定义的 数据库 是当前数据库并使用新的 createoffline() 函数。语法如下: createoffline(ViewName [, Path]) ViewName 是离线视图的名字。任何视图都可以离线;你不用特别定义一个视图作为“离线表”。 选项 Path 是要

获取离线视图是简单的:确信包含了视图定义的数据库是当前数据库并使用新的 createoffline() 函数。语法如下:

createoffline(<ViewName> [, <Path>])

<ViewName> 是离线视图的名字。任何视图都可以离线;你不用特别定义一个视图作为“离线表”。

选项 <Path> 是要建立的DBF的目录和文件名。如果你未指定<Path>, VFP 将在当前目录中建立一个与视图同名的表(例如, 如果视图名字是LV_CUSTOMER, 表名将是LV_CUSTOMER.DBF)。

注意VFP 文档中关于该参数的描述是错误的; 它规定你只能为该表指定一个目录, 但实际上你也可以指定名字 (尽管扩展名不是必须的)。

如果视图成功的离线,createoffline() 返回.T.。

如果视图已经离线,如果你使用了第二个参数而又未指定文件名, 如果视图表或支持性表缓存文件已经存在 (该行为有望在将来的版本中得到改变;依我看来, 它不会妨害set safety), 或源表不能打开,则返回 .F.。

以下是该函数的一个例子:

llSuclearcase/" target="_blank" >ccess = createoffline(@#LV_CUSTOMER@#, @#OFFLINE\LV_CUSTOMER@#)

该例试图让LV_CUSTOMER 视图离线并在当前目录下的OFFLINE子目录中建立一个叫LV_CUSTOMER.DBF 的表。

这里是关于生成离线视图的其它要注意的事:

  • createoffline() 打开视图所基于的表而不是视图本身。
  • 如果视图离线,dbgetprop(<ViewName>, @#View@#, @#Offline@#) 返回.T.。
  • VFP 5.0 (包括5.0a) 有一个bug:如果 createoffline() 返回.F., 指明视图因某种原因而未能离线, dbgetprop(<ViewName>, @#View@#, @#Offline@#) 出乎意料的返回.T.。dropoffline()也不会正常工作; 它返回.F。指明视图不能离线, 而且即使它确实已经不是离线视图, dbgetprop(<ViewName>, @#View@#, @#Offline@#) 继续返回.T., 然而; 在视图联线模式或管理模式下打开视图将会得到一条 "对象不是一个离线视图" 错误。幸运的是, 如果你解决该问题而致使createoffline() 失败, 你可以再次使用它来让视图离线.

原文转自:http://www.ltesting.net