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

Среднее профессиональное образование 5 страница



б. Команда задания альтернативных путей поиска SET PATH ТО [<список путей поиска>].

Если требуемый файл не найден в текущем каталоге, то поиск файла продолжается в каталогах, указанных в Сспнсхе путей поисках

в. Команда управления курсором SET CONFIRM ON

Команда включает автоматический перевод курсора в следу­ющее поле после нажатия клавиши ENTER. Если после нажатия клавиши ENTER курсор должен оставаться в том же поле, то в этой команде следует указать параметр OFF.

г. Команда подачи звукового сигнала SET BELL ON

При наборе текста вслепую надо знать, была ли нажата клави­ша или нет. После подачи этой команды каждое нажатие клави­ши сопровождается звуковым сигналом. Для отмены звукового сигнала надо в этой команде указать параметр OFF.

д. Управление выдачей системных сообщений SET TALK ON | OFF

Если установлена опция ON, то на экран выводятся систем­ные сообщения о выполнении некоторых команд и многих фун­кций FoxPro. Если установлена опция OFF, то системные сооб­щения на экран не выводятся.

2.14. ПРИМЕР

Создадим базу данных, рассмотренную в примере гл. I. Предва­рительно на диске создадим каталог PRIMER, куда и будем помешать вес файлы создаваемой базы данных.

Запустим Visual FoxPro и сделаем каталог PRIMER текущим с помощью команды

SET DEFAULT ТО E:\PRIMER

Таблицы Customer, Sale, Salesman, Account, Order, Catalog, Autor, Town и Street создадим с помощью команды CREATE (см. гл. 2 пп. 2.1.а и 2.1.6). Таблицы Fam, Im и Ot создадим с помощью SQL-опсратора. (Структура всех таблиц приведена в Примере к гл. 1.)

CREATE TABLE Fam (Key_fam n(3),Name_f am с(15)) CREATE TABLE Im (Key_im n(3). Name_im с(15)) CREATE TABLE Ot <Key_ot n(3), Name_ot с(15))

Итак, создано двенадцать пустых таблиц. Для ввода данных в таблицу надо эту таблицу сделать текущей (активной) В каждый момент времени текущей может быть только одна таблица. От­кроем все 12 таблиц, каждую в своей рабочей области и каждой рабочей области присвоим псевдоним (alias).

USE Customer.dbf in 1 alias cus USE order.dbf in 2 alias ord USE Salesman.dbf in 3 alias smn USE Sale.dbf in 4 alias sal USE Account.dbf in 5 alias acnt USE Catalog.dbf in 6 alias ctl USE Author.dbf in 7 alias atr USE Town.dbf in 8 alias twn USE Street.dbf in 9 alias str USE Fam.dbf in 10 alias fam USE Im.dbf in 11 alias im USE Ot.dbf in 12 alias ot

Для того чтобы таблицу сделать текущей, надо подать коман ду SELECT и указать алиас нужной рабочей области. Сделаем те­кущей таблицу Customer, подав команду SELE cus.

Для вывода содержимого текущей таблицы Customer на экра подадим команду Brow.

Используя приемы, описанные в пункте 2.4, заполним табли­цу Customer данными и сохраним их.

После заполнения всех таблиц данными, сделайте текуше таблицу Author с помощью команды Selc atr.



Выведите содержимое таблицы Author на экран с помощью команды Browse.

По умолчанию принят американский стандарт даты — ММ.ДД.ГГ. Для перехода на привычный немецкий стандарт даты надо подать команду SET DATE German.

По умолчанию номер года выводится двумя последними циф рами. Для того чтобы год обозначался четырьмя цифрами, надо подать команду SET CENTURY ON. {

Создадим базу данных Book с помощью команды CREATE DATABASE Book


При этом каталог PRIMER должен быть открыт. После вы­полнения команды на экран будет выведена пустая диалоговая панель Database Designer (см. рис. 2.10).

Поместим созданные двенадцать таблиц в базу данных. Для этого установим курсор мыши на рабочее поле и правой кнопкой мыши выведем на экран контекстное меню, из которого выберем команду Add Table. В появившемся на экране списке имен таб­лиц курсором выделим имя нужной таблицы и нажмем кнопку Ок. Эту процедуру надо выполнить для каждой таблицы.

2.15. КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Для каких целей создают таблицу?

2. Назовите способы создания таблицы.

3. Назовите два способа представления данных из таблицы на экране. Как задать каждый из способов представления данных?

4. Какой командой добавляется новая запись в табличный файл? В ка­ком месте таблицы располагается добавленная запись?

5. Назовите особенности удаления записи из таблицы.

6. Укажите преимущества и недостатки двухэтапного удаления записи.

7. Что такое модификация структуры таблицы и в каких случаях она применяется?

8. В каких случаях возможна потеря информации при модификации таблицы?

9. Какие характеристики поля надо указать при создании или модифи­кации таблицы?

10. Назовите два способа открытия таблицы.

11. Каким способом производится предъявление на экран таблицы?

12- Какая команда выводит на экран сведения о текущей таблице?

13. Сколько таблиц можно открыть одновременно и как они будут рас­полагаться в оперативной памяти?

И- Что такое рабочая область и ал нас рабочей области?

15- Какая команда используется для редактирования таблицы?

1®- Как задать в команде BROWSE вывод на экран определенных полей таблицы?

12- Как задать в команде BROWSE ограничения на значения поля?

Как задать в команде BROWSE логическое условие на значение поля?

Как задать в команде BROWSE вывод на экран заголовка столбца таблицы буквами русского алфавита?

20. Как задать в команде BROWSE вывод на экран заголовка таблиц буквами русского алфавита?

21. Как задать в команде BROWSE синхронную и асинхронную связь между половинами разделенного окна BROWSE?

22. Как запретить в команде BROWSE редактирование записей, добав­ление записей, модификацию структуры табличного файла, удале­ние записей?

23. Объясните назначение файла базы данных.

24. Укажите команды для создания и открытия файла базы данных.

25. Укажите команды для помещения таблицы в файл базы данных.

26. Укажите команду для освобождения таблицы из файла базы данных.

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

28. Какие типы дат используются в FoxPro? Как установить желаемый тип даты?

29. Какая команда задает текущий каталог?

30. Какая команда запрещает (разрешает) вывод на экран системных сообщений?


Глава 3

ИНДЕКСИРОВАНИЕ БАЗ ДАННЫХ

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

Как простой, так и сложный индекс имеют свой тип (Туре). Первичный (Primary) индекс (ключ) — это тюле или группа по­лей, однозначно определяющих запись, то есть значения первич­ного индекса уникальны (не повторяются). В реляционной базе Данных каждая таблица может иметь только один первичный ключ. Внешних ключей у таблицы может быть много и они будут иметь один из типов:

• Candidate — кандидат в первичный ключ или альтернатив­ный ключ. Он обладает всеми свойствами первичного ключа.

• Unique (уникальный) — допускает повторяющиеся значе­ния в поле, по которому он построен, но на экран будет вы­водиться только одна первая запись из группы записей с одинаковым значением индексного поля.

• Regular (регулярный) — не накладывает никаких ограниче­ний на значения индексного поля и на вывод записей на эк­ран. Индекс только управляет порядком отображения запи­сей. Эго наиболее популярный тип индекса.

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

Построенный индекс хранится в специальном индексном файле. Если индексный файл хранит только один индекс, то он называется одноиндсксным и имеет расширение.idx. Индекс­ные файлы, которые хранят много индексов, называются муль- тииндексными и имеют расширение.cdx. Каждый индекс, кото­рый хранится в мультииндексном файле, называется тегом. Каждый тег имеет свое уникальное имя.

Мультииндексныс файлы бывают двух типов: просто мульти- индексные файлы (о них рассказано выше) и структурные мульти- индексные файлы. Структурный мультииндексный файл имеет одинаковое имя с таблицей, которой он принадлежит (отличие только в расширении файла), и обладает следующими свойствами:

• автоматически открывается со своей таблицей;

• его нельзя закрыть, но можно сделать не главным.

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

3.1. СОЗДАНИЕ ИНДЕКСА

Создать индекс можно двумя способами.

а. С помощью команды:

INDEX ON <индексное выражспне> ТО Сн1х-файл>

TAG <нмя тега> [OF <с(1х-файл>]

[FOR <условне>|

[COMPACT]

[DESCENDING]

[UNIQUE]

[ADDITIVE]

[NOOPTIMIZE]

Назначение опций:

<индексное выражение> — имя поля (или полей), по значениям которого надо построить индекс. При построении сложного ин­декса имена полей перечисляются через знак + (плюс). Если сложный индекс построен по:


• числовым полям, то индекс строится по сумме значений полей;

• символьным полям, то индекс строится сначала по значе­нию первого поля, а при повторяющихся значениях перво­го поля — по значениям второго поля; при повторяющихся значениях первого и второго полей — по значениям треть­его поля и т. д.;

• по полям разных типов, то сначала значения полей приво­дят к одному типу, как правило символьному, а затем стро­ят индекс.

Длина индексного выражения не должна превышать 254 сим­вола.

ТО <л<1х-файл> — указывается имя одноиндсксного файла.

TAG <нмя тега> [OF <сёх-файл>] — указывается имя тега в мультииндексном файле. Если используется опция [OF <cdx- файл>1, то создаваемый тег помешается в указанный мульти- кндексный файл, а если требуемый мультииндексный файл от­сутствует, то будет построен структурный мультииндексный файл. Если опция [OF <с<1х-файл>] опущена, то созданный тег будет помещен в текущий мультииндексный файл.

FOR <условие> — устанавливает режим отбора в индекс тех за­писей таблицы, которые удовлетворяют <усяовию>.

COMPACT — управляет созданием компактного одноиндекс- ного файла. В старших версиях FoxPro не используется.

DESCENDING — строит индекс по убыванию. По умолчанию ис­пользуется построение индекса по возрастанию (ASCENDING). Для одноиндексных файлов можно построить индекс только по возрастанию. Если перед использованием команды INDEX ON... подать команду SET COLLATE, то можно построить одноин- яексный файл по убыванию.

unique — строит уникальный индекс. Если индексное поле (поля) содержит повторяющиеся значения, то в индекс попадает только одна первая запись и остальные записи будут не до- ступны.

ADDITIVE — вновь создаваемый индексный файл не закрыва- ^УЖс открытые к этому моменту времени индексные файлы. Ес-


.•flbjnment

.box

.indent

_im&cpn

.padvaride

.радело

„pbpage

: [(Г

Expression

яЬ_з(ер ♦ uch_*vaH

iJ

u

 

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

NOOPTIMIZE — назначение опции см. II. 4.1

б. С помощью Главного меню:

В этом случае индекс создастся либо при создании таблицы, либо при модификации структуры таблицы. Для этого в ди­алоговой панели Table Designer надо выбрать вкладку Index (рис. 3.1).

Каждый индекс описывается одной строкой в окне диалого­вой панели Table Designer.

В графе Name указывается имя тега мультииндексного фай­ла. Если ранее открыт один из мультииндексеых файлов, то вновь построенный индекс помешается в открытый мупьтиин- дексный файл. Если индекс строится одновременно с создани­ем табличного файла или табличный файл не имеет мультиин- дсксных файлов, то вновь построенный индекс помешается в автоматически создаваемый структурный мультииндексный файл.

В графе Туре, снабженной раскрывающимся списком, ука­зывается один из допустимых типов индекса. Если индекс стро­ится для таблицы, входящей в состав базы данных, то возможны четыре значения: Primary, Candidate, Unique и Regular. Если ин-

Expression Builder

 

E?

 

Sinn», Math

 

OK j

•;];J+ J J"

iJ

Cancel

йг*е:


| (date)


 

key_fam

N

 

key_im

N

 

Eey_ol

N

 

cbra)

С

 

ush.itep

С

 

Fields'


ElECOBBEHElBLii

Fran Table, j Atr


 

Рис. 3.2. Построение сложного индекса с помощью построителя вы­ражений



Carg^jl

 

 

 

Name

Type

Ехргея»я Ret

й

t

lem

RegUar

key_fam

 

i

m

Regular

keyjm

г

t

ot

Regular

key ol

Л

a

uch

| Regular z.

I ‘ % Cl

 

 

 

[Canddaie

[Uwue

 

 

 

 

 

 

 

 

 

 

• * -

[ tApnrmHVaulor.DBF

 

| Records. 2 Reids 1f

I able Designoi


ШНЯВ


Ш


Table


Index


ill


18 Length:


Рис. 3.1. Создание индекса.


 

Деке строится для свободной таблицы, то в раскрывающемся списке отсутствует значение Primary.

В графе Expression перечисляются имена полей, по значени­ям которых надо построить индекс. Если строится сложный индекс, то удобнее воспользоваться построителем выражений, который запускается нажатием кнопки, расположенной справа от поля ввода.

В графе Filter можно задать логическое условие и построить индекс не для всех записей таблицы, а только для записей, удов­летворяющих условию фильтра. Эта графа также снабжена Построителем выражений Содержание и внешний вид обоих по­строителей одинаковые (рис. 3.2).

На рис. 3.2 показано построение сложного индекса по двум символьным полям ush step и uch zvan (имя тегу uch было Рисвоено до вызова на экран построителя выражений). Знак


«+*, указывающий на построение сложного индекса, взят из рас­крывающегося списка String.

В раскрывающемся списке String приведены допустимые строковые функции. Аналогично в раскрывающихся списках Math, Logical и Date приведены допустимые математические, ло­гические функции и функции даты. Нужная функция из этих раскрывающихся списков выбирается щелчком левой кнопки мыши. Имена полей (список Fields) и имена переменных (спи­сок Variables) выбираются с помощью двойного щелчка левой кнопки мыши. Получившееся в результате выражение помеща­ется в окно Expression.

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

3.2. ОТКРЫТИЕ ИНДЕКСНОГО ФАЙЛА

Открыть индексный файл можно только в том случае, если ранее открыт соответствующий табличный файл. В противном случае будет выдано сообщение об ошибке. Для открытия индексного файла надо подать команду:

SET INDEX ТО [список индексных файлов]

[ORDER <BupN> | <|(1х-файл>|[ТАС<имятега>] [ОЕ<сйх-фаИи>]1 [ASCENDING | DESCENDING]

[ADDITIVE]

Назначение опций такое же, как в командах USE и INDEX ON.

Открыть существующий индексный файл можно одновре менно с открытием табличного файла командой USE (см. п. 2.1 «Открытие таблицы»).

Для закрытия всех индексных файлов надо подать одну из ко­манд: либо SET INDEX ТО без опций, либо CLOSE INDEX.

3.3. ЗАМЕНА ТЕКУЩЕГО ИНДЕКСА

Для каждой таблицы одновременно может быть открыто не­сколько индексных файлов, но текущим (активным) будет толь­ко один индекс. По умолчанию принято, что текущим будет пер­вЫй по порядку индекс в том индексном файле, имя которого указано первым в списке имен индексных файлов команды USE или команды SET INDEX ТО.

Текущим можно сделать любой индекс из текущего индекс­ного файла с помощью команды

SET ORDER ТО

[<BupNI> | <1йх-файл> | (TAG <имятега> [OF <cdx - файл>] ] [IN <BupN2> | <вырО I [ASCENDING | DESCENDING)

Назначение опций:

<BbipNl> — задает текущий индекс по его порядковому номеру в мультииндексном файле.

<[с!х-файл> — дслаеттскущимодноиндсксныйфайл.

TAG <имятега> [OF <с<1х-файл>] — задает текущий индекс по имени тега из указанного мультиипдексного файла. Если опция [OF <cdx - файл>] опущена, тотег выбирается из текущего мулъ- тииндексного файла.

IN <BupN2> — указывает номер рабочей области, в которой на­ходится индексный файл. Опция используется в том случае, если табличный файл открыт в одной рабочей области, а индексный файл — в другой рабочей области.

Текущим индекс также можно сделать с помощью диалоговой панели Table Designer, переместив строку описания нужного ин­декса на первое место.

3.4. ПЕРЕСТРОЙКА ИНДЕКСНЫХ ФАЙЛОВ

При внесении изменений в большие таблицы тратится много времени, так как при внесении каждого изменения заново пере­страиваются все открытые индексные файлы. Для экономии времени индексные файлы закрывают и вносят изменения в таб­лицу. Однако в этом случае возникает несоответствие между об­валенной таблицей и индексными файлами. Дтя устранения Указанного несоответствия надо заново перестроить индексные Файлы. После открытия всех индексных файлов, принадлежа- рйх измененному табличному файлу, надо подать команду ‘‘EINDEX. Команда действует на все индексные файлы, откры- в текущей рабочей области. Переиндексирование можно

также выполнить, подав из Главного меню команду Table Rebuild Indexes.

3.5. ПРЕОБРАЗОВАНИЕ ОДНОИНДЕКСНОГО ФАЙЛА В ТЕГ,

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

COPY INDEXES <имсна Idx - файлов> | ALL [ТО <cdx - файл>]

Опция ALL указывается в том случае, если надо скопировал! все одноиндсксные файлы. При этом список имен <ичсна idx- файлов> не указывается. Тегам присваиваются имена одноин- дексных файлов. При копировании нескольких одноиндексньА файлов их имена перечисляются через запятую. Если опция TO J опущена, то одноидексныс файлы копируются в текущий мул ь-J таиндексный файл. Если опция ТО содержит имя нссушествД ющего мультииндексного файла, то он создастся.

Допустима и обратная операция, то есть один тег прсобразЯ ется (копируется) в одпоиндексный файл с помощью ко.мандьЗГ

COPY TAG <список имея тегов> {OF <cdx - файл> ] ТО <idx - файл>]

Предварительно мультииндексный файл должен бьггь otJ крыт. Можно скопировать отдельные теги, указав Ссписокимен тегов>, либо все теги, используя опцию ALL.

3.6. УДАЛЕНИЕ ТЕГА ИЗ МУЛЬТИИНДЕКСНОГО ФАЙЛА

Удалить один тег или все теги из мультииндексного файла, о(крытого в любой рабочей области, можно с помощью командмЦ

DELETE TAG <имя тега 1> [OF <нмясс1х-файла>]

[,<нмя тега 2> [OF <имя сс1х-файла> ] ]... |

ALL [OF <нмя сйх-файла> ]

Одной командой можно удалить теги, находящиеся в разнЫ^ мультииндексных файлах.

3.7. ВЫВОД НА ЭКРАН ИМЕН ИНДЕКСНЫХ ФАЙЛОВ И ИМЕН ТЕГОВ

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

NDX(<Bup.N> [,<номср рабочей области | псевдоним рабочей областн> ])

Функция возвращает имена открытых одноинасксных фай­лов.

CDX(<Bnp.N> [,<номср рабочей области | псевдоним рабочей обдастн> ])

Функция возвращает имена открытых мультиплексных фай­лов.

MUX(<Bup.N> [,< номер рабочей облает | псевдоним рабочей области> ])

Функция возвращает имя структурного мультииндсксного файла.

Во всех функциях <выр.1Ч> — порядковый номер индексно­го файла, имя которого должна вернуть функция.

ТАС([<имя сйх-файла>, <выр.!\'> [, <номер рабочей области | псевдоним рабочей области> ])

Функция возвращает для указанного <имя «1х-файла> муль- тииндексного файла имя тега <Bbip.N>, заданного порядковым номером. Если <имя cdx-фaйлa> опущено, то по умолчанию подставляется имя текущего мультииндексного файла.

3.8. ПРИМЕРЫ

Пример 1. В соответствии со структурой таблицы Customer (см. пример к гл. 1) построить необходимые индексы.

SET DEFAULT ТО Е:\PRIMER &&3адание рабочего каталога

Откроем базу данных Book с помощью команды Главного меню File -> Open

Откроем таблицу Customer и установим режим модифика­ции.

USE Customer.dbf in 1 alias cus uu Открытие таблицы

* Customer

MODI ST3U Задание режима модификации текущей

* таблицы

В появившейся на экране диалоговой панели Table Designer выберем вкладку Index. В графе Name укажим имя тега Cust, в графе Туре укажем тип создаваемого индекса — Primary, в гра­фе Expression укажем имя поля, по значениям которого надо по­строить индекс, — Key_cust. Индекс построим по возрастанию. После нажатия кнопки Ok на экран выводится запрос — надо ли сохранить сделанные изменения? Для сохранения созданного индекса надо нажать кнопку Yes. Можно задать описание сразу нескольких индексов, а сохранение выполнить один раз.

Вызовем на экран диалоговую панель Table Designer другим способом. Установим курсор мыши на пиктограмму таблицы Customer и щелчком правой кнопки мыши выведем на экран контекстное меню. Из контекстного меню надо выбрать коман­ду Modify (аналог команды Modify structure). В соответствии со структурой таблицы Customer (см. пример в п. 1.8), опишем второй индекс. В графе Name зададим имя тега Town, в графе Туре укажем тип Regular, в графе Expression укажем имя поля Key_town. Сохраним описанный индекс. Так как при построе­нии индексов мы не указали имя мультииндексного файла, то автоматически был построен структурный мультииндексный файл с именем Customcr.cdx. Чтобы убедиться в этом, можно дать команду

? CDX{1)

или команду

? МЭХ (1).

Остальные индексы можно построить с помощью слсдующи команд:

INDEX ON Key_street TAG Street OF Customer.cdx INDEX ON Key_fam TAG Fam OF Customer.cdx INDEX ON Key_im TAG Im OF Customer.cdx INDEX ON Key_ot TAG Ot OF Customer.cdx

Чтобы вывести на экран имя третьего тега мультиплексного файла Customer, надо лать команду

7 TAG('Customer', 3)

Аналогично любым из способов постройте индексы для ос­тавшихся одиннадцати таблиц в соответствии со структурой таб­лиц (см. пример к гл. 1).

Пр им ер 2. Сортировка даш!ых.

При выводе содержимого таблицы на экран в окно Browse данные сортируются в соответствии со значениями текущего индекса. Так как при построении индексов для каждой таблицы были созданы структурные мультииндексные файлы, то при открытии таблиц имя структурного мультишщсксного файла в опции INDEX можно не указывать.

CLOSE ALL && Закрытие всех файлев

SET DEFAULT ТО Е:\PRIMER && Задание рабочего

* каталога

USP Customer.dbf in 1 alias cus && Далее открытие

* двенадцати таблиц USE Order.dbf in 2 alias ord

USE Salesman.dbf in 3 alias smn

USE Sale.dbf in 4 alias sal USE Account.dbf in 5 alias acnt USE Catalog.dbf in 6 alias ctl USE Author.dbf in 7 alias atr USE Town.dbf in 8 alias twn USE Street.dbf in 9 alias str USE Fam.dbf in 10 alias fam USE Im.dbf in 11 alias im USE Ot.dbf in 12 alias ot

SELECT im && Задание текущей

таблицы

После подачи команды BROWSE на экран будет выведено с°Держимое таблицы Im, записи которой будут отсортированы в возрастающем порядке по значениям поля первичного ключа Key_im (порядковый номер имени). Сделаем текущим индекс (тег) с именем Name с помощью команды SET ORDER ТО Name. После подачи команды BROWSE таблица Im будет от­сортирована в соответствии с этим индексом, то есть имена будут расположены в алфавитном порядке.

Пример 3. Выведем сведения о наличии мультииндексных файлов и имен тегов у таблицы Author CLEAR && Очистка экрана

? «Имя мультииндексного файла» АТ 2,«имя тега» АТ 40

UU Задание строки заголовка

FOR nCount = 1 ТО 254

IF!EMPTY(TAG(nCount)) && Проверка наличия тегоз

* в мультииндексном файле

? CDX(nCount) АТ 3, TAG('AuthornCount) AT 40

* Stic Вывод на экран имен файла и тегов

ELSE

EXIT &£с Выход, если мультииндексный файл пуст

ENDIF

ENDrOR

3.9. КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Что такое индекс?

2. Что такое индекс простой и индекс сложный?

3. Объясните разницу между уникальным и регулярным индексами.

4. Объясните разницу между одноиндексным и мультииндексным файлами.

5. Укажите особенности структурного мультииндексного файла.

6. Что такое тег?

7. Укажите два способа создания индекса.

8. Что значит индекс, построенный по возрастанию или по убыванию?

9. Укажите два способа открытия индексного файла. Как открыва структурный мультиндексный файл?

до. Что значит текущий индекс? Как сделать индекс текущим0 ц. Для каких целей используется перестройка индексных файлов? Какой командой выполняется перестройка индексных файлов?

12. Как удалить тег из мультииндексного файла?

13. Укажите команды для вывода на экран имен индексных файлов и имен индексов (тегов) внутри индексного файла.


Глава 4

УПРАВЛЕНИЕ БАЗАМИ ДАННЫХ

Как правило, база данных состоит из нескольких таблиц. Чтобы получить полную информацию об одной сущности, надо прочи­тать запись во всех таблицах базы данных. Между' таблицами могут бьггь установлены взаимосвязи (см. гл. 5), что существенно облегчает работу с такой базой данных. Нели таблицы разроэне-1 ны, то возникают дополнительные проблемы по управлению такими таблицами (совмещение курсоров, обеспечение достовср- I ности, представление данных и т. д.).


Дата добавления: 2015-09-29; просмотров: 22 | Нарушение авторских прав







mybiblioteka.su - 2015-2024 год. (0.05 сек.)







<== предыдущая лекция | следующая лекция ==>