| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2690 人关注过本帖
标题:高手帮忙看一下代码中绝对地址的写法可以改为相对地址吗?
取消只看楼主 加入收藏
hszxgb
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2020-10-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
高手帮忙看一下代码中绝对地址的写法可以改为相对地址吗?
如下代码中刷红绝对地址的写法,能不能改成相对地址比如&&后的写法。


*根据运动员号码查询比赛成绩
ydybm=ALLTRIM(thisform.text1.Value)                           &&待查询运动员号码
*判断运动员号码是否存在
SELECT COUNT(*) FROM e:\学习\运动会管理系统\data\运动员 WHERE 运动员号码==ydybm INTO ARRAY shu
IF shu=0                                                      &&不存在该编号
   MESSAGEBOX(ydybm+"号码不存在!",0+48,"提示")
   RETURN                                                     &&结束查询
ELSE
   *查询姓名、性别、单位名称
   SELECT 姓名,性别,单位名称;
   FROM e:\学习\运动会管理系统\data\运动员,;                  &&data\运动员
   e:\学习\运动会管理系统\data\参赛单位;                      &&data\参赛单位
   WHERE 运动员.单位编码=参赛单位.单位编码 AND 运动员号码==ydybm INTO ARRAY xm
   *在文本框中显示姓名、性别、单位名称
   thisform.txtXM.Value=xm(1)
   thisform.txtXB.Value=xm(2)
   thisform.txtDW.Value=xm(3)
   *查询该运动员的参赛项目、名次、得分
   SELECT 项目名称,名次,得分;
   FROM e:\学习\运动会管理系统\data\运动项目,;               &&绝对地址e:\学习\运动会管理系统\data\运动项目
   e:\学习\运动会管理系统\data\个人得分;                    &&绝对地址e:\学习\运动会管理系统\data\个人得分
   WHERE 运动项目.项目编码=个人得分.项目编码 AND 运动员号码==ydybm INTO CURSOR grxx
   *设置表格数据源显示该运动员的参赛项目、名次、得分
   thisform.grid1.RecordSource="grxx"
ENDIF
搜索更多相关主题的帖子: 单位 运动 data 项目 管理系统 
2020-10-28 23:03
hszxgb
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2020-10-5
收藏
得分:0 
回复 2楼 schtg
我试了不行啊!有什么办法可以不用绝对地址,绝对地址应该会在文件整体搬家后影响使用吧!
2020-10-29 09:52
hszxgb
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2020-10-5
收藏
得分:0 
回复 4楼 gs2536785678
PUBLIC mypath
mypath=sys(5)+sys(2003)+"\"
你好 你这个全局变量名mypath有特定含义吗?
2020-10-29 10:23
hszxgb
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2020-10-5
收藏
得分:0 
回复 3楼 wengjl
PUBLIC mypath
  cCurrentProcedure = SYS(16,1)
  nPathStart = AT(":",cCurrentProcedure)- 1
  nLenOfPath = RAT("\", cCurrentProcedure) - (nPathStart)
  mypath=SUBSTR(cCurrentProcedure, nPathStart, nLenofPath)
  SET DEFAULT TO (mypath)
你好 你这个代码改成这样有什么区别?
PUBLIC mypath
  cCurrentProcedure = SYS(16,1)
  nPathStart = 1
  nLenOfPath = RAT("\", cCurrentProcedure) - 1
  mypath=SUBSTR(cCurrentProcedure, nPathStart, nLenofPath)
  SET DEFAULT TO (mypath)
或者这样
PUBLIC mypath
  cCurrentProcedure = SYS(16,1)
  nLenOfPath = RAT("\", cCurrentProcedure) - 1
  mypath=SUBSTR(cCurrentProcedure,1, nLenofPath)
  SET DEFAULT TO (mypath)

[此贴子已经被作者于2020-10-29 11:04编辑过]

2020-10-29 11:02
hszxgb
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2020-10-5
收藏
得分:0 
回复 8楼 吹水佬
cDefaultPath = ADDBS(JUSTPATH(SYS(16)))
SET DEFAULT TO (cDefaultPath)
cDir = cDefaultPath + "data"
MD (cDir)
cDBF = cDefaultPath + "data\tmp.dbf"
CREATE TABLE (cDBF) (f1 I)
INSERT INTO tmp VALUES (1)
INSERT INTO tmp VALUES (2)
INSERT INTO tmp VALUES (3)
USE
SELECT * FROM data\tmp
CLOSE DATABASES ALL
DELETE FILE (cDBF)
RD (cDir)
你这个中第一行这样写有什么区别?cDefaultPath = ADDBS(JUSTPATH(SYS(16,1)))
2020-10-29 11:11
hszxgb
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2020-10-5
收藏
得分:0 
回复 12楼 吹水佬
sys(16)帮助中提示返回正在执行的程序文件名
sys(16,1)帮助中没有,我好像在哪里看是返回正在执行的程序文件名(包含完整路径)
不知道sys(16)返回中有完整路径不
2020-10-29 11:30
hszxgb
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2020-10-5
收藏
得分:0 
回复 14楼 吹水佬
好的,谢谢了
2020-10-30 08:59
快速回复:高手帮忙看一下代码中绝对地址的写法可以改为相对地址吗?
数据加载中...
 
   



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

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