КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Примеры. Индексирование и открытие таблиц
Индексирование и открытие таблиц Последовательный поиск (Locate) Фильтрация данных (Set Filter) Локализация и поиск записей в таблице Редактирование полей в программном режиме (Replace) В FoxPro можно изменять значения полей программным путем. Replace<границы> [While <условие>] [For <условие>] <поле1> With <Выр1> [,<noлe2> With <Выр2>]... Эта команда осуществляет множественное изменение полей таблицы в соответствии с заданными выражениями в установленных границах и при заданных условиях. Если отсутствует параметр <границы> или <условия>, то изменена будет только текущая запись. Пример. Use “Brig” && открытие таблицы с данными о выработке по бригаде Replace Zar With Zar*1.2 For Vir>100 && премия 20% за перевыполнение Replace Zar With Zar+500 For Tab=98 && надбавка бригадиру с таб. номером 98 В FoxPro предусмотрена команда вида Set Filter To[<ВырL>] Она позволяет выводить и обрабатывать только те записи активной таблицы, которые удовлетворяют заданному условию. Команда Set Filter To (без параметров) отключает фильтр активного файла таблицы (Set Filter To Pol='М'.And. Szarp>1000000). Команда Locate For<Условие> [<Границы>] [While <Условие>] осуществляет последовательный поиск первой записи в таблице, удовлетворяющей заданному For-условию, среди записей, находящихся в заданных границах, и до тех пор, пока соблюдается While-условие. В случае, если границы и While-условие отсутствуют, поиск ведется во всем файле, начиная с первой записи. При успешном поиске указатель записей устанавливается на найденную запись. При неудачном поиске функция Recno() возвращает число записей в таблице плюс 1, функция Found() =.F., а функция Eof() возвращает.Т. Команда Continue продолжает поиск. При отсутствии очередной записи в Locate‑группе функция Found() =.F., а функция Eof() возвращает.Т.. Индексный файл содержит записи, каждая из которых содержит два значения: индекс (ключа) и номер записи в таблице со значением данного индекса, записи отсортированы по индексу (п. 1.3.8.1). В FoxPro можно создать три типа индексных файлов. Обычный индексный файл. Он имеет расширение имени IDX и содержит один индексный ключ*. Мультииндексный файл с расширением имени МDX. Такой файл может хранить сразу несколько индексных выражений. Он является соединением нескольких простых индексных файлов. Структурный индексный файл‑ аналогичен предыдущему, но имеет расширений CDX и открывается автоматически при открытии таблицы. В Visual Foxpro создается автоматически и используется мастерами и конструкторами. Таблица, имеющая открытый индексный файл, просматривается в порядке, определенном индексным выражением <Выр>. При этом физический порядок записей не изменяется. Процессом просмотра и доступа к таблице управляет только один индексный файл (главный). Hекоторые команды (например, Seek) используют главный индексный файл для поиска записей. Однако при изменении информации в таблице обновляются все открытые индексные файлы. Главный индексный файл можно определить при помощи фразы Index команды Use или при помощи команд Set Index и Set Order. Индексирование выполняется следующей командой: Index On<Выр> To “<файл.idx>”[For<ВырL>][Compact][Unique][Additive] <Выр> - индексное выражение содержит поля текущей таблицы. Индексный ключ, построенный на основании индексного выражения, создается для каждой записи таблицы и записывается в индексный файл. FoxPro использует эти ключи для просмотра и осуществления доступа к записям таблицы. Для простых индексных файлов длина индексного выражения не может превышать 100 символов; <файл.idx> - имя индексного файла IDX. По умолчанию создаваемому индексному файлу присваивается расширение IDX; Compact - создает компактный файл без пробельных символов IDX; Unique -дублирующие индексы не включаются в индексный файл; Additive - при создании индексного файла или файлов для таблицы при помощи команды Index, все ранее открытые индексные файлы (за исключением структурного индекса) закрываются. Если присутствует Additive, то ранее открытые индексные файлы остаются открытыми. Index On Kod_Pred To Predprk && индексирование по одному полю Index On Str(Kod_Gor,6)+Comp Tocom && несколько полей в индексе Index On Oklad For Oklad>1000000 To Kadrokl && фильтрованный индекс Существующие индексные файлы могут быть открытыкомандами Use и Set Index. Рассмотрим эти команды. Открытие таблицы реализуется командой: Use[<файл>|?] [In <рабочая область>] [Index <список индексных файлов>][Order[<ВырN>|<индексный файл.idx>][Ascending | Descending], <файл> - имя таблицы, которую необходимо открыть. Если указан?, то будет выдано окно открытия файлов со списком предлагаемых таблиц. Если команда Use указана без <файл>, а в указанной рабочей области открыта таблица, то она будет закрыта. Таблица будет также закрыта в случае, когда в этой же рабочей области будет открыта другая таблица; <рабочая область> - таблица открывается в указанной рабочей области. Для закрытия таблицы в другой рабочей области необходимо выполнить команду Use без имени таблицы, но с указанием рабочей области в In <рабочая область>; <список индексных файлов> |? - открывает вместе с таблицей индексные файлы. Файлы в <списке индексных файлов> должны разделяться запятыми. Первый файл в <списке индексных файлов> становится главным индексным файлом, если не указано <ВырN>, которое указывает на главный индексный файл. Индексные файлы пронумерованы в порядке нахождения в <списке индексных файлов>. Если <ВырN> равно 0, то записи файла таблицы будут доступными по физическому номеру, но индексные файлы остаются открытыми; Order [<индексный файл.idx>] - точное указание индексного файла в качестве главного индекса; Ascending | Descending - указывает порядок размещения записей в таблице (возрастающий или убывающий). Индексный файл не изменяется, меняется только порядок доступа к записям. Перед открытием таблицы данных нужно открыть базу с этой таблицей (п. 2.4.17). Подключение индексов выполняется командой: Set Index To[<список открываемых индексных файлов> ] [Order <ВырN> | <файл.idx> ] [Ascending | Descending] [Additive] Значения параметров аналогичны одноименным параметрам предыдущей команды. Additive - все ранее открытые индексные файлы остаются открытыми. Закрытие индексов выполняется командами: Set Index To или C lose Index. Назначения главного индексного файла выполняется командой Set Order To[<ВырN> | <Файл.idx> [Ascending | Descending]] <ВырN> соответствует позиции индекса в списке, заданном с помощью команд Set Index To или Use. Если задана команда Set Order To [0], то отключается доступ к файлу с помощью индексов. Ascending | Descending - можно также специфицировать упорядочение главным индексом по возрастанию или по убыванию. При этом никаких изменений в индексном файле не будет, а изменится только порядок вывода записей. Функция Order() возвращает имя главного индекса. Функция Ndx(<ВырN>) возвращает имя индексного файла под номером ВырN.
Дата добавления: 2014-12-10; Просмотров: 709; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |