Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема_2_2_FoxУправлен_записями.doc
Скачиваний:
4
Добавлен:
05.05.2019
Размер:
92.67 Кб
Скачать

Контроль редактирования записей

Следующие опции аналогичны рассмотренным ранее ключам :V, :W, :E и :F при определении возможности выхода из текущего поля, но распространяются на всю запись целиком. При этом могут анализироваться любые условия:

WHEN <условие> - определяет возможность доступа к записи. Если <условие> ложно или был возвращен 0, запись доступна только для чтения.

VALID <условие> [ERROR <вырС>] - анализирует выполнение <условия> для текущей записи, если в ней произошло изменение данных и вы хотите перейти к другой записи. Если условие истинно (.Т.), запись покинуть разрешается, если ложно (.F.) или равно 0 - нет, и при этом появляется стандартное сообщение об ошибке "Invalid Input" либо любое другое, заданное в <вырС>. Контроль может быть усилен включением параметра :F. При этом проверка условия будет выполняться независимо от того, меняли вы данные в записи или нет.

Все опции и ключи доступа к полям/записям базы данных позволяют не только организовать контроль ввода данных, но реализовать и более широкие функции.

Ограничение возможности редактирования данных

NOAPPEND - дополнение базы с помощью клавиш Ctrl-N невозможно.

NOEDIT7NOMODIFY - редактирование невозможно. Разрешены пометка к удалению и дополнение базы.

NODELETE - пометка к удалению записей базы данных с помощью клавиш Ctrl-T или мышью невозможна.

FREEZE <поле> - указывает единственное <поле>, значение которого разрешается редактировать. Остальные поля только отображаются.

3. Перемещения в базе данных

При работе с базой данных необходимы средства перемещения внутри нее. Запись, на которой находится указатель записей, является текущей, и только к ней в данный момент возможен непосредственный доступ.

Имеется несколько разновидностей команд, изменяющих положение указателя записей:

• GO TOP [IN <область>] - переход к самой первой записи файла;

• GO BOTTOM [IN <область>] - переход к самой последней записи;

• GO <BbipN> [IN <область>] - переход к записи с указанным в <BbipN> номером;

• SKIP <BbipN> [IN <область>] - переход к записи, отстоящей

от текущей на указанное в <BbipN> число записей. , В последней команде <BblpN> может быть и'отрицательным, что означает движение указателя назад. SKIP без параметра идентичен SKIP 1 (переход на следующую запись). Параметр IN <область> указывает над базой из какой рабочей области должна выполниться команда. Если он опущен, имеется в виду текущая рабочая область.

Для контроля положения указателя и наличия записей в файле предусмотрены функции:

• RECNO([<o6nacTb>]) - указывает номер текущей записи;

• RECCOUNT([<o6nacTb>])- выдает общее число записей в файле базы данных, включая записи, помеченные к удалению;

• ЕОF([<область>]) - функция конца файла. Она истинна (.Т.), если конец достигнут, и ложна (.F.) в противном случае;

• ВОF([<область>]) - то же, но для начала файла. Необязательный параметр <область> указывает, для какой рабочей области запрашивается значение функции. По умолчанию

текущая область. Функции в FoxPro имеют характерный синтаксис - скобки, даже

если никакого аргумента нет и они остаются пустыми.