foxpro 取得离线视图

时间:2007-02-12 00:00:00  来源:  作者:

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

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

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

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

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

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

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

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

llSuccess = 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() 失败, 你可以再次使用它来让视图离线.  





上一篇:foxpro 多个本地数据   下一篇:没有了

文章评论

共有 0人发表了评论 查看完整内容

推荐教程

最新教程