Предполагается, что на карте выбран один объект и никаких других временных таблиц нет.
Сравните варианты.
Обычный вариант с обычной выборкой. Никаких остаточных явлений не наблюдается.
Код: Выделить всё
sub proc1
dim s as string
dim i as integer
s= SelectionInfo(2)
print s
drop Table s
For i = 1 To NumTables()
print TableInfo(i,1)
Next
end sub
Обсуждаемый вариант с затейливой инструкцией select * from selection into q1 приводит к побочному эффекту.
Код: Выделить всё
sub proc2
dim s as string
dim i as integer
select * from selection into q1
drop Table q1
s= SelectionInfo(2)
print s
drop Table s
For i = 1 To NumTables()
print TableInfo(i,1)
Next
end sub
Сюда можно добавить отмену выделения (Run Menu Command M_QUERY_UNSELECT) но результата это не даст. Интересно проследить какой именно QueryN остался не удаленным.
Уйти от подобного эффекта достаточно просто.
Код: Выделить всё
sub proc3
dim s as string
dim i as integer
s= SelectionInfo(2)
select * from s into q1
drop Table s
drop Table q1
For i = 1 To NumTables()
print TableInfo(i,1)
Next
end sub