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

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

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






 

Следует напомнить о типах индексов в мультииндексных файлах, приведенных в табл.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; просмотров: 287. Нарушение авторских прав; Мы поможем в написании вашей работы!



Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Устройство рабочих органов мясорубки Независимо от марки мясорубки и её технических характеристик, все они имеют принципиально одинаковые устройства...

Ведение учета результатов боевой подготовки в роте и во взводе Содержание журнала учета боевой подготовки во взводе. Учет результатов боевой подготовки - есть отражение количественных и качественных показателей выполнения планов подготовки соединений...

Сравнительно-исторический метод в языкознании сравнительно-исторический метод в языкознании является одним из основных и представляет собой совокупность приёмов...

Подкожное введение сывороток по методу Безредки. С целью предупреждения развития анафилактического шока и других аллергических реак­ций при введении иммунных сывороток используют метод Безредки для определения реакции больного на введение сыворотки...

Принципы и методы управления в таможенных органах Под принципами управления понимаются идеи, правила, основные положения и нормы поведения, которыми руководствуются общие, частные и организационно-технологические принципы...

ПРОФЕССИОНАЛЬНОЕ САМОВОСПИТАНИЕ И САМООБРАЗОВАНИЕ ПЕДАГОГА Воспитывать сегодня подрастающее поколение на со­временном уровне требований общества нельзя без по­стоянного обновления и обогащения своего профессио­нального педагогического потенциала...

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