| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1400 人关注过本帖
标题:FoxPro中,为什么程序明明定义了数组,运行时却提醒数组不存在
只看楼主 加入收藏
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用mywisdom88在2015-5-16 23:06:41的发言:

我今天也遇到这个问题
QY="广州"
SELECT 编号,金额 FROM 表1 WHERE 区域=QY INTO ARRAY BHJE
AL=ALEN(BHJE)
FOR I=1 TO AL
...
ENDFOR
&&问题来了。
&&1、当第1次查询SELECT 有结果时,
AL=ALEN(BHJE)  &&没问题,如AL=10,也就是5条记录。。
&&2、如果我改变条件,区域="上海",但这个条件是没数据的,
SELECT 编号,金额 FROM 表1 WHERE 区域="上海" INTO ARRAY BHJE
AL=ALEN(BHJE)  &&此时,AL还是=10,理论上是没的,数据不存在的?

&&我为了解决这个问题,现在是这样做
RELEASE BHJE  &&释放
SELECT 编号,金额 FROM 表1 WHERE 区域=QY INTO ARRAY BHJE
AL=IIF(TYPE("BHJE")="U",0,ALEN(BHJE)) &&判断数组是否存在,存在才取数组长度
FOR I=1 TO AL
...
ENDFOR
不知道,这样做合理不?还是有其它更加好的方法。

解决问题的做法是对的。
改变数组长度和维数可用 DIMENSION 命令,但 DIMENSION 命令只能改变长度最小为 1。
就算用 ADEL() 也不能改变数组的长度。
RELEASE BHJE 释放分配给BHJE数组的空间,也就是BHJE不存在了。
2015-05-17 07:10
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:4 
对于自己不熟悉的命令或函数,最好的办法是看帮助文件中的说明和示例,比发贴求助来得更快捷、更准确。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2015-05-17 08:25
快速回复:FoxPro中,为什么程序明明定义了数组,运行时却提醒数组不存在
数据加载中...
 
   



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

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