>>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 >>>
>*-- 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 >Interesting. I never tried that approach.