Студопедия — Создание индексов в мультииндексных файлах
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Создание индексов в мультииндексных файлах






 

Следует напомнить о типах индексов в мультииндексных файлах, приведенных в табл.5.1.

 

Таблица 5.1 Типы индексов в мультииндексных файлах

Primary Первичный ключ. ТБД может иметь только один первичный индекс,который позволяет вводить только уникальные значения поля.
Candidatе Позволяет создавать несколько индексов с уникальными значениями для одной и той же ТБД.
Regular (простой) Индекс может быть создан для любых значений поля. Таблица может иметь несколько индексов такого типа.
Unique Уникальный индекс, который позволяет обрабатывать не совпадающие значения полей и обрабатывать одно значение из нескольких повторений. В версиях VFP (7.0, 8.0, 9.0) данный тип индекса не создается, но его можно иcпользовать из предыдущих версий VFP (3.0, 5.0).

 

Для дальнейшей работы нам понадобится создать индексы. Описание создания индексов для таблиц Detl, Detl_n, Poshk_k, Poski_n, Proek представлено в табл.5.2, табл.5.3, табл.5.5, табл.5.7 и табл.5.8 соответственно. Описание способов интерактивного создания индексов в мультииндексных файлах для таблиц Poshk и Poski представлено в табл.5.4 и табл.5.6 соответственно.

 

В этих таблицах заполняются следующие колонки:

- Order Name - наименование индекса;

- Type - тип индекса;

- Expression - сюда вводится поле таблицы, для которого создается индекс;

- Filter - указывается ограничение (фильтр) по полю таблицы, заданного в колонке Expression, при выводе записей на экран;

- Collate – (по умолчанию стоит значение Machine) позволяет сортировать (упорядочивать) данные в таблице.

 

 

Таблица 5.2 Detl

Order Name Type Expression Filter Collate
nomd_i Primary nomd    

 

 

Таблица 5.3 Detl_n

Order Name Type Expression Filter Collate
Nomd_i Primary nomd    

 

 

Таблица 5.4 Poshk

Order Name Type Expression Filter Collate
nomp_i Primary nomp    
STAT_I Regular stat    
STAT_IL Regular stat stat>10  
GF_I Regular gord+famp    
GF_In Regular gord    
GF_In1 Regular famp+gord    

 

В таблице Poshk для 5-го и 6-го индексов теперь не используется тип индекса Unique из версий, предшествующих версии VFP 7.0. Он заменен на тип Regular.

 

Таблица 5.5 Poshk_k

Order Name Type Expression Filter Collate
Nomp_i Primary nomp    

 

Таблица 5.6 Poski

Order Name Type Expression Filter Collate
POSKI_I Regular nomp+nomd+nomr+DTOC(data)    

 

 

Таблица 5.7 Poski_n

Order Name Type Expression Filter Collate
POSKI_I Regular nomp    
POSKI_D Regular nomd    

 

Таблица 5.8 Proek

Order Name Type Expression Filter Collate
nomr_i Primary nomr    

 

Создадим два дополнительных числовых поля tel и fax в таблице poshk_n размерностью в 9 знаков, типом данных Character, и маской ввода ###-##-## и введем в них данные.

Правила ввода данных в эти поля: в конкретном поле нажать клавишу Ноme для установки курсора в начальной левой позиции поля и вводить 7 цифр подряд произвольно без дефиса (например, 1111111 для номера 111-11-11). Введем произвольные данные в поля tel и fax таким образом, чтобы они в каждом поле были записаны не по возрастанию.

Для этих полей создадим индексы на основании описания, представленного в табл.5.9.

 

Таблица 5.9 Poshk_n

Order Name Type Expression Filter Collate
TEL_I Candidatе tel    
FAX_I Candidatе fax    

 

В таблице poshk_k добавляем еще два новых строковых поля firstname(ИМЯ) и lastname(ОТЧЕСТВО) размерностью 15 символов.

 

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

Напомним, что для открытия мультииндексного файла таблицы, созданного интерактивным способом, в окне Сommand или в тексте процедуры пишется команда по следующему синтаксису:

Use <путь>\<имя ТБД>.dbf order <имя индексного файла>;

Расширение .dbf указывать не обязательно.

Создание индексов интерактивнымспособом

Процедура indexes

В этой процедуре производится работа с индексами различных типов, созданных интерактивным способом в таблице poshk. Процедура сохраняется под именем indexes.

*Файл indexes.prg

*Просмотр индексов

CLEAR

CLOSE TABLES ALL

? "Выполнение индексированного файла poshk"

? "Индексирование по первичному ключу - коду поставщика"

USE poshk ORDER nomp_i && Использование ТБД poshk с индексом nomp_i

LIST

WAIT

set ORDER TO 2 && Перейти ко второму индексу

CLEAR

? "Второй индекс. Индексирование по полю stat"

LIST

WAIT

set ORDER to 3 && Перейти к третьему индексу

CLEAR

? "Индексирование по полю stat с фильтром>10"

LIST

WAIT

set ORDER to 4

CLEAR

? "Индексирование по полям gord+famp"

LIST

WAIT

set ORDER to 5

CLEAR

? "Индексирование по полю gord"

LIST

WAIT

set ORDER to 6

CLEAR

? "Индексирование по полям famp+gord "

LIST

WAIT

CLEAR

? "Закрытие индексов"

WAIT

SET ORDER TO

CLEAR

RETURN

 

 

Рассмотрим подробнее результат индексации таблицы по каждому из созданных индексов для этой таблицы.

 

Индекс nomp_i (Primary) по полю nomp. В результате выполнения индексации по первичному ключу, заданному для номера поставщика, на экран выведется таблица (если вы работаете командным способом) или данные (если вы запускаете процедуру на выполнение), в которой записи отсортированы по номеру поставщика.

Индекс STAT_I (Regular) по полю stat. В результате индексации по второму индексу на экран выведется таблица или данные, где записи будут отсортированы по статусу поставщика.

 

Индекс STAT_IL (Regular) по полю stat, но с заданным фильтром stat>10.

В результате индексации по третьему индексу на экран выведется таблица или данные, где записи будут отсортированы по статусу поставщика, значение которого (статуса) превышает 10.

 

Индекс GF_I (Regular) составной по полям gord+famp.

В результате индексации по четвертому индексу на экран выведется таблица или данные, где записи будут отсортированы по городу поставщика, а затем по фамилии поставщика, причем подряд будут идти две записи с городом «КИЕВ».

 

Индекс GF_In (Regular) по полю gord.

В результате индексации по пятому индексу на экран выведутся таблица или данные, где все записи названий городов будут отсортированы в алфавитном порядке, причем подряд будут идти две записи с городом «КИЕВ».

Индекс GF_In1 (Regular) составной по полям famp+gord.

В результате индексации по шестому индексу на экран выведется таблица или данные, где записи будут отсортированы по фамилии поставщика, а затем внутри списка фамилий - по городу.

 

Для наглядности используем окно Command, куда необходимо ввести следующий текст:

USE D:\BAZA\Poshk.dbf

Set order to 1 * Что означает: передача управления главному индексу

 

Эту же команду можно заменить командой с указанием имени индекса, вместо его номера:







Дата добавления: 2015-08-29; просмотров: 291. Нарушение авторских прав; Мы поможем в написании вашей работы!



Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

КОНСТРУКЦИЯ КОЛЕСНОЙ ПАРЫ ВАГОНА Тип колёсной пары определяется типом оси и диаметром колес. Согласно ГОСТ 4835-2006* устанавливаются типы колесных пар для грузовых вагонов с осями РУ1Ш и РВ2Ш и колесами диаметром по кругу катания 957 мм. Номинальный диаметр колеса – 950 мм...

Философские школы эпохи эллинизма (неоплатонизм, эпикуреизм, стоицизм, скептицизм). Эпоха эллинизма со времени походов Александра Македонского, в результате которых была образована гигантская империя от Индии на востоке до Греции и Македонии на западе...

Демографияда "Демографиялық жарылыс" дегеніміз не? Демография (грекше демос — халық) — халықтың құрылымын...

Тема: Составление цепи питания Цель: расширить знания о биотических факторах среды. Оборудование:гербарные растения...

В эволюции растений и животных. Цель: выявить ароморфозы и идиоадаптации у растений Цель: выявить ароморфозы и идиоадаптации у растений. Оборудование: гербарные растения, чучела хордовых (рыб, земноводных, птиц, пресмыкающихся, млекопитающих), коллекции насекомых, влажные препараты паразитических червей, мох, хвощ, папоротник...

Типовые примеры и методы их решения. Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно. Какова должна быть годовая номинальная процентная ставка...

Studopedia.info - Студопедия - 2014-2024 год . (0.011 сек.) русская версия | украинская версия