Truncate Table. Новая команда FileMaker 15

В вышедшем только что FileMaker 15 изменений среди скриптовых команд (Script Step) немного. Собственно, абсолютно новая команда всего одна — Truncate Table.

Truncate Table — удаляет все записи в таблице и имеет серьезные отличия от известной всем команды Delete All Records.

Truncate Table [With dialog: On/Off; <Current Table>/Table: “<table name>”]

В отличии от Delete All Records, Truncate Table удаляет все записи вне зависимости от текущей выборки (Current Found Set), то есть это полная очистка таблицы. Даже если у вас в текущей выборке есть только несколько записей, удалены будут абсолютно все. Кроме того, Truncate Table не обращает внимание на связанные таблицы, поэтому при использовании Truncate Table, каскадного удаления не произойдет.

Еще одна особенность команды Truncate Table — перед началом работы, команда проверяет все записи на предмет блокировки (например, какая запись занята пользователем) и если находит блокированные записи, то останавливается и возвращает код ошибки.

Надо признать, что Truncate Table, довольно, опасная команда и использовать ее надо со всей осторожностью. Основная сфера применения — быстрая очистка базы, так как по утверждению FileMaker, Truncate Table работает быстрее чем Delete All Records на таблицах с большим количеством записей.

Полное описание новой команды можно посмотреть в новой справочной системе FileMaker 15 (ссылка)

 

 

3 Комментариев

  1. Если бы не эта новая команда, я бы так и не знал, как Delete All Records обрабатыва(ет/ла) конфликты:

    Delete All Records attempts to lock a group of records in the found set before deleting them. If it can lock all records in the group, this script step deletes the group of records, attempts to lock the next group of records, and so on. The first time it can’t lock all records in a group (for example, if a record is being edited by another user), Delete All Records stops and returns an error code (which can be captured with the Get(LastError) function).

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

    • ну мало ли для чего может потребоваться быстрая очистка таблицы. Хотя понятно, что команда не самая важная.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

90 − 83 =