Перманентно удаляет все записи помеченные на удаление в текущей таблице и уменшает размер таблицы и мемо файла (.fpt) связанного с таблицей.
![]() |
---|
перед использованием команды PACK вы должны открыть таблицу эксклюзивно. |
PACK [MEMO | DBF] [Tablename ] [IN nWorkarea | cTableAlias] |
Параметры
- MEMO
-
Удаляет неиспользованное пространство из мемо файла но не удаляет записи, отмеченные на удаления из таблицы. Информация в мемо полях сохраняется в связанной таблицы мемо файле (.fpt), с тем же именем что и таблица.
- DBF
-
Удаляет записи, отмеченные на удаления из таблицы, но не затрагивает мемо файл.
- Tablename
-
Определяет таблицу для выполнения команды PACK. Visual FoxPro открывает заданую таблицу, пакует, и закрывает ее.
- IN nWorkArea | cTableAlias
-
Определяет рабочую область или псевдоним таблицы, над которым будет производить действие команда PACK. Используйте это выражение, чтобы определить рабочую область или таблицу вне текущей рабочей области.
Замечания
Когда вы используете команду PACK, Microsoft Visual FoxPro копирует все записи не помеченные на удаление во временную таблицу. После окончания выполнения команды PACK, Visual FoxPro удаляет оригинальную таблицу с диска и переименовывает временную таблицу с именем оригинальной. Если вы нажмете клавишу ESC для отмены команды PACK, временная таблица удаляется, а оригинальная остается без изменений. Оригинальная таблица также востанавливается если заканчивается дисковое пространство во время выполнения команды PACK.
Когда вы выдаете команду PACK без вЫражений MEMO и DBF, PACK затрагивает и таблицу и мемо файл.
PACK требует эксклюзивного доступа к таблице. Для получения дополнительной информации об открытии таблицы эксклюзивно в сети, смотрите Команда SET EXCLUSIVE.
Если текущая таблица имеет один или более открытых индексов, PACK перестраивает индексные файлы.
![]() |
---|
Будте осторожны помечайте только те записи которые вам больше не нужны. после использывания команды PACK нету средств для востановления удаленных записей. |
Если вы опуститк выражение IN, PACK работает в текущей рабочей области.
Когда вы используете PACK в таблицах содержащих автоувеличивающиеся поля, результирующая таблица не перстраивается, тоесть сохраняются существующие значения, и появляются промежутки после удаления записей. Для получения дополнительной информации, смотрите автоинкрементные поля значений в таблицах.
Если нету записей помеченных на удаление, PACK не изменяет таблицу или ее индекс.
Смотрите также
Справочное руководство
Команда DELETE - SQLКоманда DELETE
Функция DELETED( )
Команда RECALL
Команда SET EXCLUSIVE