Изменение данных в записи
Изменять значения полей при работе с командой 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 символов. Само индексное выражение может представлятьсобой имена полей и функции, производящие какие-либо действия над именами полей.