以下是引用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
不知道,这样做合理不?还是有其它更加好的方法。
我今天也遇到这个问题
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不存在了。