BaanV的table field变量的生命周期

本文深入探讨了BaanV独特的代码结构特点,包括其类似Parscal的风格、意大利面式的设计,以及在不同session中table字段变量的生命周期特性。通过具体示例分析,展示了BaanV中变量的使用方式及其与普通变量的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     BaanV没有类的概念,其代码结构类似parscal,意大利面式的,table的field变量不同于普通变量,其生命周期从定义开始一直到该session关闭为结束.

     测试:debug run script1的read.warehouse,其中call tcdup.dll0001.hello

script 1:

function extern read.warehouse()

{

        table     ttcmcs003

        domain tccwar cwar

 

        select tcmcs003.*

        from   tcmcs003

        where tcmcs003.cwar='RM'

        selectdo

               cwar=tcmcs003.cwar 

                |* 此时变量cwar及tcmcs003.cwar都为RM

               tcdup.dll0001.hello()

        endselect

}

 

tcdupdll001:

function extern tcdup.dll0001.hello()

{

        domain tccwar cwar

        domain ttcmcs003

         |* 此时变量cwar=""

         |* tcmcs003.cwar=RM

        select tcmcs003.*

        from   tcmcs003

        where tcmcs003.cwar='FG'

        selectdo

              cwar=tcmcs003.cwar

        endselect

}

 

另,table field 变量不会因下一个select不到record而重新置空,如:

tcmcs003有cwar="RM"的data:

 

select tcmcs003.cwar

from   tcmcs003

where tcmcs003.cwar="RM"

selectdo

          cwar=tcmcs003.cwar

endselect

|*紧接我们又做如下select,该select查无data

select tcmcs003.cwar

from   tcmcs003

where tcmcs003.cwar="haha"

selectdo

          cwar=tcmcs003.cwar

endselect 

 

|* 但select后,tcmcs003.cwar仍会保持"RM"的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值