setnull不能用在结构体和数组上,但我想让声明的结构体,数组为空应该怎么办啊?
------解决方案--------------------
再申明一个结构体或者数组将它附值给原来的结构体或者数组
------解决方案--------------------
string ls_data[], ls_null[]
ls_data[1] = 'sdfsdfs'
ls_data[2] = 'sdfksjdflkds'
//如果想把ls_data赋为空
ls_data = ls_null
即可
------解决方案--------------------
s_yourstruct lst_my[]
any lany
lany = lst_my
SetNull(lany)
lst_my = lany
------解决方案--------------------
pb6.5 中使用 SetNull(any) 会导致内存泄漏,其它版本不知道,所以对 any 类型变量的置空操作还是尽量避免的好!
------解决方案--------------------
VARIANT是基于com技术的automatic发展起来的。
而pb的any很像
1,当一个any没有初使化,那么它是一个无类型。所以直接对一个无类型setnull是会出错的。
2,pb的数组也是不能够setnull的
s_yourstruct lst_my[]
any lany
lany = lst_my
SetNull(lany)
lst_my = lany
上面的代码,即然把any初使化成一个array,那么必然不可以再setnull了
------解决方案--------------------
我想any应该是一个被封装了的VARIANT
------解决方案--------------------
------解决方案--------------------
数组时话,只能这样做:
type a[],a_null[]
a[1] = 0
a = a_null
------解决方案--------------------
“丢失”的内存是没有办法找回的,唯一的办法就是避免泄漏!
要清空数据,我觉得还是按 pcwe2002 的方法比较稳妥,如果你是想通过置结构体为空来做是否有效的判断,我建议给结构体加一个“是否有效”的标志项,以此项值做为该结构体是否可用的标准。