VFP6如何检测内存变量是否存在
编号:QA002214
建立日期: 1999年12月10日 最后修改日期:2002年2月21日
所属类别:
计然:
我在写一段小程序,希望允许运行时自由设定内存变量,借此传递数据。请问如何在调用此变量时检测内存变量是否已经被赋值或已经存在?
回答:
摘自新闻组:
type()函数判断是否存在,是否已赋值就不能了,因为每个变量在创建时都会被赋一个初值的。
isnull()判断表达式是否NULL。
M$的标准写法:
IF type('myExp') = "U" or !isnull(myExp)
RETURN .f.
ENDIF
Gaphy的意见:
FP6 中可以使用 VARTYPE() 函数
? VARTYPE(_xxx)
_a=""
_b="ABCDE"
_c=12.34
_d={^2002-01-01}
_e=.Null.
? VARTYPE(_a)
? VARTYPE(_b)
? VARTYPE(_c)
? VARTYPE(_d)
? VARTYPE(_e)
以下摘自《Vfp 6.0 语言参考手册》
VARTYPE() 函数
返回一个表达式的数据类型。
语法
VARTYPE(eExpression[,lNullDataType])
返值类型 字符型
参数描述
eExpression 指定要返回数据类型的表达式。
VARTYPE()返回单个的字符,表明该表达式的数据类型。
下表列出了VARTYPE()返回的每种数据类型对应的字符:
返回的字符 数据类型
-----------------------------------------------
C 字符型或备注型
N 数值型、整型、浮点型或双精度型
Y 货币型
L 逻辑型
O 对象
G 通用型
D 日期型
T 日期时间型
X Null
U 未知
-----------------------------------------------
注意如果 eExpression 是一个数组,则返回该数组第一个值的数值类型。
lNullDataType 指定当 eExpression 包含 null 值时,VARTYPE()是否返回它的数据类型。
如果 lNullDataType为“真”(.T.),则 VARTYPE() 返回 eExpression 的数据类型。
如果 lNullDataType为“假”(.F.)或省略,则VARTYPE()返回'X',表明 eExpression 包含 null 值。
说明: VARTYPE() 类似于 TYPE() 函数,但是VARTYPE()更快,而且表达式外面不需要引号。
如果指定的变量、字段、对象或对象属性不存在,VARTYPE()将返回 "U",
如果当前没有活动的表单,运行 ActiveForm 属性会产生 OLEIDispatch 错误。
wys问:
同样是这个问题,请问在vb中该如何解决?
李海答:不清楚你具体的目的是什么。VB和VFP的机制有很多不同,可以参考QA000428 "如何选出为空的数据"、QA003815 "如何判断一个对象变量是否为nothing"。
此问题由ydz387回答。
| |
|
|
| |
|
|