编程论坛
注册
登录
编程论坛
→
VFP论坛
请教一下:如果查询中产生的大量CURSOR,各位是怎么关闭的?
shonken
发布于 2023-04-19 09:40, 207 次点击
用use in select(表名)只能针对一个表
有没有办法将符合条件的表名都关闭掉,如关闭所有以“TMP”开头的CURSOR
5 回复
#2
csyx
2023-04-19 10:45
自己写个循环呗
for ii = 1 to aused(aCsr)
if like('TMP*', aCsr[ii,1])
use in select(aCsr[ii,1])
endif
endfor
#3
shonken
2023-04-19 13:27
以下是引用
csyx
在2023-4-19 10:45:54的发言:
自己写个循环呗
for ii = 1 to aused(aCsr)
if like('TMP*', aCsr)
use in select(aCsr)
endif
endfor
对数据工作期这个定义理解不透,没想到是用aused()。
谢谢啦~
#4
sdta
2023-04-19 13:28
要养成良好的习惯,临时表用完后随时关闭,否则临时表会占用大量的内存,影响程序的运行速度。
#5
shonken
2023-04-19 14:48
以下是引用
sdta
在2023-4-19 13:28:16的发言:
要养成良好的习惯,临时表用完后随时关闭,否则临时表会占用大量的内存,影响程序的运行速度。
是啊,基本都是用完就关闭临时表,最近的有个算法会产生一个序列的临时表,一个个的关闭就太烦了,才找方法
#6
xuminxz
2023-04-20 09:07
我的习惯是,尽量少在不同事件、过程中使用同一临时表;用在过程或事件内部使用的临时表,可以用同一个表名。
1