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. В настоящее время допустимы оба варианта имени.