Изменение данных в записи

Изменять значения полей при работе с командой BROWSE можно интерактивно, щелкнув в соответствующем поле и вводя новое его значение. Если вы обращаетесь к таблице не из программы, а просто запустили среду Visual FoxProи открыли таблицу, работа в окне с записями таким образом - самое естественное поведение. Однако рассмотрим и изменение значений полей с использованием команд, вводимых в окне Command.

Для изменения значений полей в записях существует команда REPLACE.

>    <Имя_поля> - имя поля, значение которого требуется изменить;

>    <3начение> - новое значение поля;

>    ADDITIVE - позволяет добавлять текст в тето-поле, а не заменять его;

>    <Условие1> - значение полей будут изменены только в тех записях, которые удовлетворяют этому условию;

>    <Условие2> - значение полей будут изменяться до тех пор, пока выполняется условие;

>    <Номер_рабочей_области> I <Алиас_таблицы> - обозначение таблицы, вкоторой производятся изменения;

>    NOOPTIMIZE - отключает использование оптимизации Rushmore.

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

1.    Смените текущую папку, выполнив в окне Command команду

CD ?

Откроется окно, в котором нужно найти созданную нами ранее папкуexample.

2.    Откроем таблицу persons, используя команду

Если Visual FoxPro выдаст ошибку, значит, таблица в текущей папке ненайдена, следует закрыть окно с ошибкой щелчком мышью по кнопке ОКи еще раз выполнить команду CD ?, как это описано в п.1.

При успешном открытии таблицы никакого сообщения не появится.Проверить, что таблица открылась, нужно, выполнив команду BROWSE.Окно с именем таблицы в заголовке появится на экране.

3. Щелкните мышью в пятой по счету записи в поле Name. Содержимоеэтого поля должно быть «Семенов Павел Игоревич». Допустим, при вводе данных об этом сотруднике допустили ошибку и его отчество не Игоревич, а Петрович. Курсор после щелчка мышью установился в полеName. Можно стереть «Игоревич» и набрать «Петрович». После этогощелкните мышью в другом поле или нажмите Enter. Внесенные вамиизменения сохранены.

4. Воспользуемся другим способом изменения данных - командой REPLACE.Изменим значение поля Address в записи со значением поля Tabnum =70004.

5.    Убедитесь, что изменения произошли, и именно в записи со значениемполя Tabnum = 70004.

6.    Закроем таблицу посредством команды

CLOSE TABLES

Индексы. А зачем они?

В принципе вы можете обойтись совершенно без них. Однако, если ваши таблицы содержат более сотни записей, если вы хотите получить быстрый способ поиска записи по какому-либо критерию, если вы хотите получить легкийспособ связывания таблиц, - не стоит пренебрегать индексами. Конечно, впервую очередь индексы используются для сортировки записей. Это весьмаудобно - на одну таблицу можно создать несколько индексов и пользоватьсянужным из них в зависимости от ситуации. Индексы помогают выделять избольшого количества записей только подмножества с необходимыми характеристиками.

Что же такое индексы? Индексы - это заранее выбранные и распределенные в указанном вами порядке ссылки на записи таблицы. Когда вы создаететаблицу и наполняете ее данными, записи хранятся в файле в том порядке, вкаком вы их туда помещали. Если индексы не используются, обработка этихзаписей, поиск в них будут производиться в том же порядке. Когда вы создаетеиндекс (индексируете вашу таблицу), физическое расположение записей в файле таблицы не меняется. Изменяется только порядок обработки записей индексированных таблиц. При этом довольно сильно возрастает скорость поискаданных по определенному условию.

Сами индексы хранятся в отдельном файле либо с расширением .idx,либо с расширением .cdx. В idx-файле может храниться только один индекс,и длина индексного выражения не может превышать 100 символов. Cdx-файлы позволяют хранить несколько индексов с длиной индексного выражения до 240 символов. Само индексное выражение может представлятьсобой имена полей и функции, производящие какие-либо действия над именами полей.