>Define Class CloseTemp As Custom > Dimension a1[1] > nFiles=0 > > Procedure Init > This.nFiles=Aused(atemp) > If This.nFiles>0 > Acopy(atemp, This.a1) > Else > This.a1="" > Endif > > Procedure Destroy > For i=Aused(aNow) to 1 Step -1 && close in reverse order they were opened. > do case > case upper(aNow[i,1]) == upper(Alias()) && skip if resulting cursor > case Ascan(This.a1, aNow[i,1],-1,-1,1,2+4)=0 > Use In aNow[i,1] > Endcase > Endfor >Enddefine >>
>*-- create snapshot of currently open tables. >local loOpen >loOpen = CreateObject("CloseTemp") >*-- perform query >Select * from file1 join file2 on ... into cursor temp >*-- close all files open during the query, but the current cursor. >release loOpen >if with is not active:
*-- create snapshot of currently open tables. WITH CreateObject("CloseTemp") *-- perform query Select * from file1 join file2 on ... into cursor temp *-- close all files open during the query, but the current cursor. ENDWITH