foxpro取得离线视图
来源:优易学  2010-1-15 19:38:51   【优易学:中国教育考试门户网】   资料下载   IT书店

获取离线视图是简单的:确信包含了视图定义的数据库是当前数据库并使用新的 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() 失败, 你可以再次使用它来让视图离线.

责任编辑:小草

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