Очищает указанные (или все) поля текущей Записи Таблицы, если не указаны дополнительные параметры.

BLANK [FIELDS FieldList] [DEFAULT [AUTOINC]] [Scope] [FOR lExpression1] 
[WHILE lExpression2] [NOOPTIMIZE] [IN nWorkArea | cTableAlias]

Параметры

[FIELDS FieldList]

Очищает только те поля таблицы, которые определены в списке FieldList. Если данная секция FIELDS cотсутствует, предполагаются все поля рассматриываемой Таблицы. Если указывается имя поля, относящееся к другой, не текущей таблице, оно должно быть указано вместе с соответствующим алиасом (в целях однозначного соответствия и возможных ошибок).

NoteПримечание

Команда BLANK не очищает соответствующие поля записей таблицы, связанной с текущей таблицей, если указатель записей расположен вне-данных (EOF()=.t.). Если Указатель записи текущей таблицы установлен в актуальное состояние, а в дочерней таблице существуют соответствующие записи, тогда команда BLANK может очистить данные в указанных полях дочерней записи.

[DEFAULT [AUTOINC]]

Определяет создание начальных значений для всех очищаемых полей, для которых в Базе Данных созданы соответствующие значения (значения по-умолчанию). Если список полей не указан, то всем полям будут присвоены начальные значения. Секция DEFAULT игнорируется для Свободных таблиц (не закрепленных за базой данных).

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

NoteПримечание

Для автоматического изменения автоинкрементных полей требуется временная блокировка Заголовка Таблицы. Если вы выполняете команду BLANK, с опциями DEFAULT AUTOINC, таблица открыта в режиме коллективного доступа, системная команда SET MULTILOCKS находится в состоянии = OFF, Visual FoxPro генерирует сообщение об Ошибке. Блокировка Записи невозможна.

Scope

Определяет диапазон обрабатываемых Записей Таблицы, поля которых будут очищены. По-умолчанию, команда BLANK очищает текущую запись таблицы, предполагается опция  (NEXT 1). Очищаются только те записи, которые входят в указанный диапазон.

Ключевыми опциями Диапазона являются:  ALL, NEXT nRecords, RECORD nRecordNumber, и REST.

Рассматриваемые опции Диапазона работают только с текущей Рабочей Областью.

Дополнительную информацию смотрите в разделе: Опции Диапазона.

FOR lExpression1

Определяет логическое условие, если значение заданного выражения lExpression1 = True (.T.), то поля соответствующих Записей Очищаются. Если указанное логическое условие BLANK FOR lExpression1 оптимизируемо, то может быть применена технология "Rushmore Query Optimization". О возможностях данной технологии смотрите в разделе: Использование Технологии Rushmore оптимизации Запросов для ускорения доступа к данным.

WHILE lExpression2

Определяет логическое условие очистки полей соответствующих Записей Таблицы, пока данное условие lExpression2 = True (.T.) - записи очищаются.

NOOPTIMIZE

Отключает оптимизацию Rushmore при выполнении команды BLANK. Смотрите дополнительно разделы: SET OPTIMIZE, команда и Использование Технологии Rushmore оптимизации запросов для ускорения доступа к данным.

IN nWorkArea| cTableAlias

Определяет номер рабочей области или алиас соответствующей таблицы, поля записей которой будут очищаться при помощи команды  BLANK. Данная опция используется для указания ссылки на  таблицу, открытую не в текущей рабочей области.

Примечание редактора. Если команда выдается с опцией DEFAULT, то опция DEFAULT должна быть помещена после опции IN nWorkArea| cTableAlias. В противном случае Visual FoxPro сгенерирует ошибку 36 - Command contains unrecognized phrase/keyword (Команда содержит нераспознаваемую фразу/ключевое слово).

Expand imageКомментарии

Для проверки того факта, очищено ли поле таблицы, используйте функцию: ISBLANK( ).

Для добавления новой Записи в конец Таблицы - используйте команду APPEND BLANK.

Expand imageПример

В рассматриваемом далее примере: открывается таблица с именем customer, которая закреплена за Базой Данных testdata . Отображается содержание полей первой Записи таболицы. Команда SCATTER используется для получения копии данных в массиве переменных памяти. Текущая запись очищается при промощи команды BLANK, вновь отображается содержание полей записи. Команда GATHER используется для восстановления сохраненных ранее данных в Записи, и восстановленные данные отображаются опять.

 CopyCode imageКопировать Код
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table

CLEAR
DISPLAY && Displays the current record
SCATTER TO gaCustomer && Create array with record contents
BLANK && Clear the record
DISPLAY && Displays the blank record
GATHER FROM gaCustomer && Restore original record contents
DISPLAY && Display the restored record

Expand imageСм. также