注册 登录
编程论坛 VFP论坛

请教一下:如果查询中产生的大量CURSOR,各位是怎么关闭的?

shonken 发布于 2023-04-19 09:40, 207 次点击
用use in select(表名)只能针对一个表

有没有办法将符合条件的表名都关闭掉,如关闭所有以“TMP”开头的CURSOR
5 回复
#2
csyx2023-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
shonken2023-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
sdta2023-04-19 13:28
要养成良好的习惯,临时表用完后随时关闭,否则临时表会占用大量的内存,影响程序的运行速度。
#5
shonken2023-04-19 14:48
以下是引用sdta在2023-4-19 13:28:16的发言:

要养成良好的习惯,临时表用完后随时关闭,否则临时表会占用大量的内存,影响程序的运行速度。


是啊,基本都是用完就关闭临时表,最近的有个算法会产生一个序列的临时表,一个个的关闭就太烦了,才找方法
#6
xuminxz2023-04-20 09:07
我的习惯是,尽量少在不同事件、过程中使用同一临时表;用在过程或事件内部使用的临时表,可以用同一个表名。
1