Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв БД 2013-03-15.doc
Скачиваний:
5
Добавлен:
01.04.2025
Размер:
12.65 Mб
Скачать

2.4.16. Прямой поиск

Команда Seek <выражение> выполняет поиск первой записи индек­си­рованной таблицы с ключом, совпадающим с заданным выражением. В случае успешного поиска функция Recno( ) возвращает номер най­ден­ной записи, Found( ) возвращает .T. , и Eof( ) возвращает .F.. При не­удач­ном поиске Recno( ) возвращает номер записи в таблице плюс еди­ни­ца, Recno(0) будет указывать на ближайшую запись, Found( ) воз­вращает .F. и Eof( ) возвращает .T. . Однако, если в случае неудачного поиска было установлено Set Near On, то указатель устанавливается непос­ред­ственно на записи, имеющей ближайшее значение ключа. Recno(0) воз­вращает номер этой ближайшей записи.

Пример

Use “Sotrudniki” Index Fam && открытие таблицы с данными о сотрудниках

Seek “Иванов” && поиск записи с фамилией “Иванов”

If Found( ) && запись нашлась

Display && вывод значений всех полей

Endif

Функция Seek(<Выр>[,<Псевдоним>]) заменяет комбинацию из команды Seek и функции Found( ).

Команда Reindex применяется для перестройки и восстановления всех открытых индексов таблицы.

2.4.17. Одновременная работа с несколькими таблицами

При работе с таблицами базы сначала нужно открыть базу командой Open Database [<имя базы> | ?] [Exclusive | Shared] [Noupdate] [Validate],

E xclusive/Shared ‑ монопольный/разделяемый режим работы с базой.

Внимание! Команды, которые действуют на всю таблицу или базу в режиме корректировки (например, Zap, Pack, Reindex) выполняются только в монопольном режиме работы с базой.

Noupdate ‑ блокировка корректировки базы.

Validate ‑ контроль ссылок в индексных файлах.

Затем открыть нужную таблицу командой Use (п. 2.4.8.2).

После окончания работы с базой ее нужно закрыть командой Close Databases.

2.4.17.1. Рабочие области

Команда Select <рабочая область | псевдоним> обеспечивает выбор одной из доступных рабочих областей для открытия таблицы или выбор рабочей области, в которой уже открыта таблица. Рабочие области иден­тифицируются номерами с 1 до 255 или буквами А - J (первые де­сять), W11-W255. Если в рабочей области уже открыта таблица, то выбрать рабо­чую область можно и по ее псевдониму (обычно - имя таблицы).

По умолчанию активна рабочая область 1. Если в команде Select в качестве параметра указать 0, то активизируется свободная рабочая область с наименьшим номером.

Команду Select можно использовать для переходов между рабо­чи­ми областями так, что таблица, открытая в заданной рабочей области, становится активной. Можно изменить текущую рабочую область, задав псевдоним таблицы, открытой в другой рабочей области. Если при от­­кры­­тии таблицы не задан псевдоним, то имя таблицы (без расшире­ния) по умолчанию принимается в качестве псевдонима.

Можно задать поля из других рабочих областей, содержащих свя­зан­ные таблицы, используя синтаксис: <псевдоним>.<имя поля>.

В каждой рабочей области поддерживается свой указатель записи. Пере­ходы между рабочими областями не влияют на позиции ука­зателей записи. Команды, изменяющие позицию указателя записи, дей­ствуют только для активной таблицы, если не установлены отношения фай­лов с помощью команды Set Relation To.