| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1131 人关注过本帖
标题:如何提高VFP应用软件的路径适应性
只看楼主 加入收藏
jjjlan
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2004-11-24
收藏
 问题点数:0 回复次数:1 
如何提高VFP应用软件的路径适应性

在使用各种商品化的应用软件时,发现部分软件,可以将它安装在硬盘的任何盘的任何目录中;而有的软件,则只能安装在设计者事先规定的特定盘和特定路径中。假如将它放在了另外的盘号和路径,就会出现"XXXX数据库找不到"等等之类错误,从而中断软件的运行。本文从VFP语言的编程特点出发,介绍了提高VFP应用程序路径适应性的具体实现方法。 1. 在VFP应用软件的项目中,有一个主文件,它是整个应用程序的运行起始点。在主文件的开头处,插入以下语句: A.将该软件的目录(安装后目录),设置为当前目录 SET DEFAULT TO SYS(5)+SYS(2003) B.从.INI文件或路径数据表中读取用户指定的该软件下的子目录名(.INI文件或路径数据表的内容,待软件安装后,根据软件下的子目录名,由用户输入),例如B.1。若软件设计时确定了子目录名,则执行B.2的语句。 B.1 这里以"路径数据表"为例,说明读取路径的过程。 USE PGPATH MPATH=‘‘ LOCA FOR PH#‘ ‘ &&搜索字段PH(路径)不为空的记录 DO WHILE .NOT.EOF() MPATH=MPATH+TRIM(PH)+‘,‘ &&连加成搜索路径 SKIP ENDD MPATH=LEFT(MPATH,1,LEN(MPATH)-1) B.1 若子目录名固定,则将各子目录名赋给MPATH,例: 两个子目录名为 DATA1,DATA2,DATA3则: MPATH=‘DATA1,DATA2,DATA3‘ C.设置搜索路径 SET PATH &MPATH. D.打开各数据库 OPEN DATABASE 数据库1 OPEN DATABASE 数据库2 2. 在主程序文件以外的程序中,作如下处理: 在这些程序中,以上设定的搜索路径仅由项目内的自由表使用,打开自由表时,不要使用路径。对于只包含单个数据库的项目,数据库中的表、视图等可以通过以下语句来使用,无须再使用路径。 OPEN DATABASE [数据库名] USE [表名] 而对于包含多个数据库的项目,在使用其内的表、视图等对象时,采用: USE 数据库名!表名 3. 若要求应用程序在用户指定的目录中新建文件,则可以通过以下VFP函数来实现: =PUTFILE([cCustomText] [, cFileName] [, cFileExtensions]) 运行此函数,出现一个对话框,让用户选择文件(cFileName).( cFileExtensions)的存放目录。 4. 对VFP数据环境的分析。 报表、表单等设计时,数据环境内各个对象(如表、自由表、视图等)的CursorSource属性中包含自由表的绝对路径,以及Database属性中包含数据库的绝对路径。并且这二个属性都是只读的,无法修改。然而,在编程实践中发现,这二个属性值在项目连编时,都转化为相对于项目文件所在位置的相对路径。从而为设计路径通用性程序成为可能。这一点可通过查看使用了数据环境的各类文件(如:表单的 *、SCT,报表的 *、FRT)来证明,因此,在设计数据环境时,对数据对象,无须考虑路径的相对性。而且,数据环境中的数据库也是按SET PATH设定的顺序查找的。 5. 项目文件中的数据库 首先,要将它们标为"排除"。笔者,在项目"连编"前,有意改变它的数据库目 录,使"项目连编"时找不到数据库,当出现"找不到数据库"等错误信息时,选择 "忽 略",连编后的应用程序,照样可使用。因此,连编后的应用程序中,不固定项目内(已 标为"排除"的)数据库的路径,也不必考虑路径问题。 6.最后要注意,在打开项目的环境下,调试运行主文件(整个应用程序的运行起始点) 时要将 SET DEFAULT TO SYS(5)+SYS(2003) 改为 SET DEFAULT TO [(设计环境中)连编后的应用程序存放的绝对路径] 因为设计项目时 SYS(5)+SYS(2003)得出的不一定是[连编后的应用程序存放的 绝对路径],如:设计项目时是先运行VFP系统,再打开项目文件,则得出的路径是 VFP系统的安装目录。

搜索更多相关主题的帖子: 应用软件 路径适应性 数据库 目录 应用程序 
2005-06-18 14:04
songyuyu
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:6090
专家分:25
注 册:2007-1-17
收藏
得分:0 
下班了,没时间看了,顶起来,明天再看....

我喝水只喝纯净水,牛奶只喝纯牛奶,所以我很单纯……
2007-04-05 16:29
快速回复:如何提高VFP应用软件的路径适应性
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023363 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved