PB null值的解析

在数据库中,NULL表示未知或未定义,不同于空值。PowerBuilder为变量设定默认值,而非NULL。当从数据库读取NULL字段时,变量会设为NULL。使用SetNull()函数可将变量置为NULL,但不能直接赋值。判断NULL应使用IsNull()函数,而不能直接比较。NULL在布尔表达式中被视为False。
摘要由CSDN通过智能技术生成

NULL值:
    NULL代表不知道或者没有定义,和空值完全不同。例如,在数据库中某字段取值为NULL,代表用户还没有处理这个字段的数据,有待于处理;而如果该字段取值为空,代表这个字段的数据用户做了处理,这个字段的取值是清楚的。

    当变量定义后,变量没有取值,应该为NULL,但实际上不是这样。PowerBuilder为每种类型的变量都规定了默认值,当刚刚定义了某类型的变量时,该变量的取值为这种类型变量的默认值。如integer类型的默认值为0,string类型的变量的默认值为“”。

    大多数情况下,NULL和数据库打交道时才经常使用。当某个取值为NULL的字段取值读入到变量时,该变量被置为NULL。也可以通过函数将变量的值置为NULL,但是不能直接把NULL赋值给变量。任何类型的变量都可以被赋值为NULL,NULL是一个非常特殊的值。函数用法是:

SetNull(变量名)

执行成功时返回1,否则返回-1。

例如:

String ls_name //此时变量ls_name的取值为“”

SetNull(ls_name) //ls_name变量此时为NULL

    判断某变量的取值是否为NULL时,使用函数IsNull(变量名),不能使用“=”来判断。例如“if ls_name=NULL then…”是不正确的,“ifIsNull(ls_name) then …”是正确的。当某布尔表达式的取值为NULL时,Powers cript处理为False。例如,下面的语句都不能执行beep(1)语句:

Int li_Nbr

// Set li_Nbr to NULL.

SetNull(Nbr)

If li_Nbr =1 Then Beep(1)

If li_Nbr <> 1 Then Beep(1)

If Not (li_Nbr = 1) Then Beep(1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值