DETACH_TABLE


Синтаксис

DETACH_TABLE(TableName: IDENT;
             SaveMode: SAVE_MODE);
SAVE_MODE = Save | Purge

Описание

Процедура отключает программную нерегулярную таблицу БД. Попытка отключить локальную нерегулярную таблицу выбрасывает исключение 978. Отключить неподключенную таблицу безвредно.

К моменту отключения нерегулярной таблицы все ее курсоры должны быть уничтожены. Это означает, во-первых, что нерегулярную таблицу нельзя отключать, пока для нее остались непарные вызовы процедуры SAVE, а во-вторых, нерегулярную таблицу, подключенную в главной транзакции, нельзя отключить в подчиненной транзакции.

Если таблица БД была подключена (см. ATTACH_TABLE) в режимах Create или Output, необходимо явно задать режим отключения параметром SaveMode: Save означает сохранить проделанные с момента ATTACH_TABLE изменения (аналог успешного завершения транзакции), Purge - откатить изменения. Если таблица была открыта в режиме Input, параметр SaveMode можно и не задавать (если задать, он будет проигнорирован). Если таблица была открыта в режиме Temporary, сохранить ее данные невозможно, поэтому параметр SaveMode можно не указывать, а если он указан, то обязан иметь значение Purge, иначе будет выброшено исключение 391.

В случае неудачи отключения нерегулярной таблицы БД будет выброшено исключение. Примеры использования процедуры DETACH_TABLE см. в описании к процедуре-функции ATTACH_TABLE.

Подробнее см. статью "Работа с нерегулярными таблицами БД средствами языка ASL".

До версии 14.136.020 процедура называлась DetachFILE. В настоящее время допустимы оба варианта имени.

См. также