如何提高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系统的安装目录。

相关文章:

非常夏日毕业设计  www.bysjdz.com  毕业设计 毕业论文  论文定做 免费论文  开题报告  文献综述  外文翻译  毕业设计定做  计算机毕业设计  计算机毕业论文 计算机外文翻译

找吧!毕业设计  www.zhaobysj.com 毕业设计 毕业论文 论文定做 免费论文 开题报告  文献综述 外文翻译  毕业设计定做  计算机毕业设计   计算机毕业论文 计算机外文翻译

转载于:https://www.cnblogs.com/hotsummer/archive/2010/12/30/1921577.html

如何提高VFP应用软件的路径适应性相关推荐

  1. 无懈可击的Web设计:使用HTML 5和CSS 3提高网站的灵活性与适应性(第3版)

    <无懈可击的Web设计:使用HTML 5和CSS 3提高网站的灵活性与适应性(第3版)> 基本信息 原书名:Bulletproof Web Design:Improving flexibi ...

  2. Mirobiome | 广东省科学院土壤所孙蔚旻团队:固氮内生菌可以提高中国芒草的生态适应性...

    题目:Characterization of diazotrophic root endophytes in Chinese silvergrass (Miscanthus sinensis) 发表杂 ...

  3. OKR案例:持续激励是提高员工积极性的路径

    持续激励是OKR管理过程中必不可少的一项工作,但很多团队并没有重视这一点. 实际上这并非难事,对员工进行话语上的认可,或通过表情上的传达都可以满足员工被重视.被认可的需求,从而受到激励的效果. OKR ...

  4. 提高科学研究素养的路径

    原创,转载请注明出处,谢谢. 摘要: 作为一名计算机科学领域的研究人员,提高科学研究素养对于科研过程和结果至关重要,提高科学研究素养应从三方面入手:树立正确的科学研究价值观.提高科学实验过程中的安全知 ...

  5. 【ROS-Navigation】—— DWA路径规划算法解析

    文章目录 前言 1. 涉及的核心配置文件与启动文件 1.1 demo01_gazebo.launch 1.2 nav06_path.launch 1.3 nav04_amcl.launch 1.4 n ...

  6. 自动驾驶路径跟踪控制——驾驶员预瞄模型

    文章目录 1. 驾驶员预瞄控制概述 1.1 第一个得到应用的驾驶员模型(Crossover模型) 1.2 预瞄概念的诞生 1.3 驾驶员模型环节 1.4 补偿跟踪模型 1.5 预瞄跟踪模型 1.6 速 ...

  7. 熟练的计算机应用技巧,计算机应用软件的学习方法探析

    [摘 要]近年来随着信息化技术发展水平的不断提高,计算机在人们的日常生活中已经得到较为广泛地普及,尤其是计算机应用软件在人们工作.生活以及学习等各个领域中占据着至关重要的地位.因此,为熟练掌握计算机应 ...

  8. 计算机二级vf中字符,计算机二级VFP常用函数使用技巧探讨

    摘要:掌握VFP常用函数使用技巧对学生非常重要,在二级考试中,函数使用频繁,贯穿整个考试,不论是表创建的索引建立.还是查询的字段构造以及表单控件的函数表示,都离不开函数的使用.为了让学生理清这部分思路 ...

  9. 自动驾驶路径规划——基于概率采样的路径规划算法(RRT、RRT*)

    目录 1. RRT算法背景 1.1 RRT算法核心思想 1.2 RRT算法优缺点 2. 经典RRT算法 2.1 RRT算法流程 2.2 RRT伪代码 3. 基于目标概率采样 4. RRT*算法 4.1 ...

最新文章

  1. 机房收费系统总结【1】-整体流程
  2. alexnet训练多久收敛_如何将深度学习训练速度提升一百倍?PAISoar 来了
  3. python在windows和linux_python在windows和linux下获得本机本地ip地址方法小结
  4. 网申时遇到“补充信息”这一栏,填还是不填?
  5. ​cglib实现动态代理构建带参数的代理实例
  6. ipmitool 设置网关_IPMI (Intelligent Platform Management Interface)
  7. kafka reassign 限速_RabbitMQ 与 Kafka 的技术差异以及使用注意点
  8. 常用的函数式接口_Consumer接口的默认方法andThen
  9. IOS调试移动端弹窗遮罩input框focus和click事件失效
  10. Docker卸载镜像
  11. IoTeX与BigQuery集成以使数据对谷歌云用户可用
  12. java se 6 mac_Mac OS X “打开xx软件, 你需要一个Java SE 6运行环境”问题解决
  13. HttpWebRequest POST 数据时请求头多了一行Expect: 100-continue,少了数据行
  14. 游戏代练平台源码打包+搭建教程
  15. mysql8.0默认端口_mysql 8.0.19 安装 及 端口修改
  16. 基于STM32CubeMX在STM32F072C8T6移植Contiki OS
  17. Kindle阅读软件,手机阅读器软件、mobi、azw3、epub格式书籍阅读器软件分享
  18. Chrome浏览器调用摄像头拍照
  19. 贝叶斯估计、最大似然估计、最大后验概率估计
  20. VMware 开启笔记本摄像头

热门文章

  1. VS2019 WPF制作OTA上位机(二)获取bin文件路径
  2. 力扣53. 最大子序和
  3. Java IdentityHashMap size()方法与示例
  4. uva 12545——Bits Equalizer
  5. Qt中槽函数触发两次的两种场景分析
  6. python 各个模块的简单介绍 转载
  7. Linux时间函数札记
  8. 数据库原理及应用【五】安全性和完整性约束
  9. Linux网络编程——tcp并发服务器(I/O复用之select
  10. 使用Tomcat+MyEclipse开发Java Web配置