СУБД PARADOX

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ.................. ОСНОВНЫЕ ПОНЯТИЯ.............. РАБОТА С СУБД PARADOX........... РАЗРАБОТКА СТРУКТУРЫ ТАБЛИЦЫ........ РАБОТА С ДАННЫМИ В ТАБЛИЦАХ........ ЗАПРОСЫ.................. РАЗРАБАТЫВАЕМЫЕ ДОКУМЕНТЫ......... КРОССТАБЛИЦЫ И ГРАФИКИ........... ОБМЕН ДАННЫМИ............... ЗАКЛЮЧЕНИЕ................. СПИСОК ЛИТЕРАТУРА.............

- 2 -

I. ВВЕДЕНИЕ

       Опыт применения ЭВМ для  построения  прикладных  систем обработки данных показывает,  что самым эффективным инструВнментом здесь являются не универсальные алгоритмические языВнки высокого уровня, а специализированные языки для создания систем управления данными. Такие средства обычно включаются в состав СУБД,  но они могут существовать и отдельно.  СУБД дают возможность пользователям осуществлять  непосредственВнное  управление данными,  а программистам быстро разрабатыВнвать более совершенные програмные  средства  их  обработки. Характеристики   готовых  прикладных  пакетов  определяются прежде всего принятой в СУБД организацией  данных  и  типом используемого транслятора.

По способу установления связей между данными различают: - реляционную

               - иерархическую

               - сетевую модели.

       Реляционная модель является простейшей и наиболее  приВнвычной формой представления данных в виде таблицы. В теории множеств таблице соответствует термин отношение (relation), который и дал название модели. Для нее имеется развитый маВнтематический аппарат - реляционное исчисление и реляционная алгебра,  где  для  баз данных (отношений) определены такие хорошо известные теоретико-множественные операции, как объВнединение, вычитание, пересечение, соединение и др.

Достоинством реляционной модели является  сравнительная

- 3 -

простота инструментальных средств ее поддержки, недостатком - жесткость структуры данных (невозможность,  например, заВндания  строк таблицы произвольной длины) и зависимость скоВнрости ее работы от размера базы данных.  Для многих  операВнций, определенных в такой модели, может оказаться необходиВнмым просмотр всей базы.

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

       Указанный недостаток  снят  в сетевой модели,  где,  по крайней мере теоретически,  возможны связи "всех со всеми". Поскольку на практике это,  естественно, невозможно, прихоВндится прибегать к некоторым ограничениям. Использование иеВнрархической  и сетевой моделей ускоряет доступ к информации в базе данных.  Но поскольку каждый элемент  данных  должен содержать  ссылки  на некоторые другие элементы,  требуются значительные ресурсы как дисковой,  так и  основной  памяти ЭВМ.  Недостаток основной памяти, конечно, снижает скорость обработки данных.  Кроме того, для таких моделей характерна сложность реализации СУБД.

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

- 4 -

индексированием баз данных.

       В наиболее полном варианте СУБД должна содержать следуВнющие составные части :

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

- Алгоритмический язык для программирования прикладВнных систем обработки данных, реализованный как инВнтерпретатор. Последнее позволяет быстро  создавать и отлаживать программы.

- Компилятор для придания завершенной программе вида готового коммерческого подукта в форме независимоВнго ЕХЕ-файла.

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

       Собственно СУБД - это оболочка пользователя.  Ввиду тоВнго, что такая среда ориентирована на немедленное удовлетвоВнрение его запросов, это всегда система-интерпретатор.

Наличие в  СУБД языка программирования позволяет созда-

вать сложные системы обработки данных,  ориентированные под конкретные задачи и даже под конкретного пользователя. Есть также СУБД,  которые имеют только язык и не имеют  оболочки пользователя.  Они предназначены исключительно для програмВнмистов,  и это системы компилирующего  типа.  Такие  пакеты лишь с оговорками могут быть названы СУБД.  Обычно их назыВнвают просто компиляторами.

       Paradox (программный продукт фирмы Borland) - это призВннанный  лидер  на  рынке  на рынке систем управления базами данных. В течение последних пяти лет (начиная с версии 3.0) Paradox  признается  специалистами  лучшей реляционной СУБД для персональных компьютеров.

- 5 -

       В 1991  году  Paradox        3.5 признается лучшей реляционной

СУБД и пользователями (премия журнала PC World  MAgazin  за 1991 год). Свидетельством все возрастающего признания являВнется и то,  что каждая третья СУБД, проданная в 1991 году в США, - это Paradox.

       Многие эксперты  приходят к выводу что технология обраВнботки информации, на которой базируется Paradox, - это техВннология СУБД 90-х годов. Paradox фактически стал стандартом СУБД для персональных компьютеров.

       Среди многочисленных особенностей Paradox выделяют униВнкальное сочетание необычайной простоты и прозрачности с огВнромными возможностями функционально завершенной системы упВнравления данными ( в этом и есть "парадокс"). И как резульВнтат такого  парадоксального сочетания - мощнейшая СУБД подВнчиняется не только  профессиональному  программисту,  но  и пользователю, не  имеющему  ни  малейшего  представления  о программировании или обработке информации на компьютере.

Paradox for  Windows  - новый продукт фирмы Borland. Paradox for Windows версии 1.0 представляет собой  уни-

кальный программный  продукт,  впитавший  в  себя  новейшие программные технологии фирмы Borland. Прекрасный интерфейс, визуальные средства проектирования таблиц,  форм, запросов, отчетов, полное использование графических  возможностей  MS Windows 3.1  (в  том  числе  возможности работать с видео и звуком), объектно ориентированный язык программирования ObВнjectPal и  великолепный  отладчик в сочетании с простотой и наглядностью использования,  делает Paradox for Windows неВнзаменимым средством  создания широкого спектра приложений Внот простых однотабличных  форм  до  сложных  распределенных программных комплексов,  функционирующих в сети и обрабатыВнвающих большие объемы текстовой,  графической, видео и зву-

- 6 -

ковой информации в реальном масштабе времени.

               II. ОСНОВНЫЕ ПОНЯТИЯ

                1. ОБЪЕКТЫ PARADOX

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

                   1.1. ТАБЛИЦЫ

       Paradox размещает данные в таблицах. Таблицы состоят из рядов и колонок. Каждый ряд содержит всю доступную информаВнцию о конкретном предмете и называется "запись",  а  каждая колонка - одну категорию данных, называемую "полем".

1.1.1. Типы полей в Paradox

       Paradox разделяет поля на несколько типов.  Каждый  тип поля определяет вид данных, которое оно содержит.

- 7 -

-----------T--------T------------------------------------Вм Вж Тип Поля Вж Размер Вж                Описание        Вж

+----------+--------+------------------------------------+ ВжАлфавитно-Вж 1-255  Вж Хранит буквы, числа, спецсимволы и Вж Вжцифровое  Вж        Вжлюбые другие печатные символы.        Вж

+----------+--------+------------------------------------+ Вж Числовое ВжНе нуженВж Хранит числа в диапазоне от -10^307Вж Вж        Вж        Вждо 10^308 с 15 значащими цифрами.        Вж

+----------+--------+------------------------------------+ Вж Денежное ВжНе нуженВж Хранит числа в диапазоне от -10^307Вж Вж        Вж        Вждо 10^308 с 15 значащими цифрами.        Вж

Вж        Вж        Вж Денежные поля - абсолютно такие же,Вж

Вж        Вж        Вжкак и числовые, но  при  отображенииВж

Вж        Вж        Вжформатируются  таким  образом, чтобыВж

Вж        Вж        Вжвыделять  десятичные позиции  сотен,Вж

Вж        Вж        Вжтысяч, миллионов и знак валюты.        Вж

Вж        Вж        Вж Независимо от количества показанныхВж

Вж        Вж        Вждесятичных  позиций, Paradox распоз-Вж

Вж        Вж        Вжнает до шести десятичных позиций приВж

Вж        Вж        Вжвыполнении внутренних вычислений надВж

Вж        Вж        Вжденежными полями.        Вж

+----------+--------+------------------------------------+ Вж   Дата        ВжНе нуженВж Содержит любую допустимую дату от 1Вж

Вж        Вж        Вжянваря 100 до 31 декабря 9999. ParaВа2-Ва0Вж

Вж        Вж        Вжdox правильно обрабатывает  високос-Вж

Вж        Вж        Вжные годы и столетия и проверяет  всеВж

Вж        Вж        Вждаты на допустимость        Вж

L----------+--------+-------------------------------------

- 8 -

----------T--------T------------------------------------Вм ВжКороткое ВжНе нуженВж Содержит целые числа в диапазоне отВж Вж целое        Вж        Вж-32767 до 32768. Короткое целое полеВж

Вж        Вж        Вжне позволяет использовать те же  оп-Вж

Вж        Вж        Вжции форматирования, что  и  числовоеВж

Вж        Вж        Вжполе.                Вж

+---------+--------+------------------------------------+ Вж  Мемо        Вж1-240 в Вж Содержит текст  переменной длины  иВж

Вж        Вж.DB ф-леВжобычно  слишком  длинный, чтобы хра-Вж

Вж        Вж неогра-Вжниться в алфавитно-цифровом поле.        Вж

Вж        Вжничен в Вж Поля мемо могут хранить буквы,числаВж

Вж        Вж.MB ф-леВжи спецсимволы, любые печатные симво-Вж

Вж        Вж        Вжлы, а также символы перехода на  но-Вж

Вж        Вж        Вжвую  строку, возврата каретки и дру-Вж

Вж        Вж        Вжгие символы управления печятью.        Вж

Вж        Вж        Вж Поля  мемо  могут быть  практическиВж

Вж        Вж        Вжлюбой  длины.  Значение  задаваемогоВж

Вж        Вж        Вжразмера относится к части мемо-поля,Вж

Вж        Вж        Вжкоторая хранится в таблице. Она  мо-Вж

Вж        Вж        Вжжет быть от 1 до 240 символов.        Вж

Вж        Вж        Вж Оставшуюся часть мемо-поля  ParadoxВж

Вж        Вж        Вжхранит вне таблицы в файле с  расши-Вж

Вж        Вж        Вжрением .МВ. Paradox считывает данныеВж

Вж        Вж        Вжиз файла .МВ когда  листается записьВж

Вж        Вж        Вжв таблице. Количество  данных, кото-Вж

Вж        Вж        Вжрое  может  содержаться в этом  полеВж

Вж        Вж        Вжограничено только доступным дисковымВж

Вж        Вж        Вжпространством.        Вж

L---------+--------+-------------------------------------

- 9 -

---------T--------T------------------------------------Вм ВжФормати-Вж1-240 в Вж Форматированное  мемо-поле не отли-Вж ВжрованноеВж.DB ф-леВжчается от  мемо-поля кроме того, чтоВж Вж мемо        Вжнеогра- Вжчто в нем можно хранить отформатиро-Вж

Вж        Вжничен в Вжванный текст.        Вж

Вж        Вж.МВ ф-леВж Paradox распознает и хранит  нарядуВж

Вж        Вж        Вжс данными атрибуты текста  (оформле-Вж

Вж        Вж        Вжние различными цветами, стили, цветаВж

Вж        Вж        Вжи размер букв), а также и формат па-Вж

Вж        Вж        Вжраграфов (позиции табуляции, отступыВж

Вж        Вж        Вжи выравнивания).        Вж

+--------+--------+------------------------------------+ ВжДвоичныйВж1-240 в Вж Содержит данные, которые Paradox неВж Вж        Вж.DB ф-леВжможет интерпретировать.  Принято ис-Вж

Вж        Вжнеогра- Вжпользовать двоичные поля для  хране-Вж

Вж        Вжничен в Вжнения  звуковых  данных. Paradox  неВж

Вж        Вж.МВ ф-леВжможет  отобразить или  интерпретиро-Вж

Вж        Вж        Вжвать двоичные данные, но  при помощиВж

Вж        Вж        ВжObjectPAL можно  к ним получать дос-Вж

Вж        Вж        Вжтуп.                Вж

+--------+--------+------------------------------------+ Вж Графи- Вж-||-||-|Вж Содержит графику (рисунки).        Вж

Вж ческий Вж        Вж                Вж

+--------+--------+------------------------------------+ Вж  OLE        Вж1-240 в Вж Содержит объекты, помещенные в таб-Вж

Вж        Вж.DB ф-леВжлицу  из других  приложений Windows,Вж

Вж        Вжнеогра- Вжкоторые  поддерживают   OLE  (ObjectВж

Вж        Вжничен в ВжLinking and Embedding - Связывание иВж

Вж        Вж.МВ ф-леВжВстраивание  Объектов)  как  сервер.Вж

L--------+--------+-------------------------------------

- 10 -

               Задание размера поля для трех последних полей не обязаВнтельно.

                           1.1.2. Типы полей dBASE

               Paradox позволяет создавать и использовать таблицы форВнмата dBASE  так  же просто,  как и таблицы формата Paradox. При использовании таблиц dBASE надо учитывать,  что типы их полей отличаются от типов полей Paradox-таблиц.

---------T--------T------------------------------------Вм

       ВжТип поляВж Размер Вж               Описание        Вж

+--------+--------+------------------------------------+

ВжСимволь-Вж  1-254 Вж Хранит любой печатный символ (вклю-Вж

       Вж   ное  Вж        Вжчая пробелы).        Вж

+--------+--------+------------------------------------+

ВжДействи-Вж   1-20 Вж Хранит численные данные в  двоичномВж Вжтельное Вж        Вжформате с плавающей точкой.        Вж

       Вж число  Вж        Вж                Вж

+--------+--------+------------------------------------+

Вж Число  Вж   1-20 Вж Содержит числовые  данные в форматеВж

       Вж                Вж        ВжВСD (Binary Coded Decimals). При вы-Вж

       Вж                Вж        Вжчислении в них дают большую точностьВж

+--------+--------+------------------------------------+

       Вж  Дата  Вж  8        Вж Содержит даты. Формат  по умолчаниюВж

       Вж                Вж(автома-Вждля ввода и отображения дат устанав-Вж

       Вж                Вжтически)Вжливается в Windows Control Panel, ноВж

       Вж                Вж        Вжможно форматировать поля  даты dBASEВж

       Вж                Вж        Вжточно также, как и поля даты ParadoxВж

       Вж                Вж        Вж                Вж

L--------+--------+-------------------------------------

- 11 -

---------T--------T------------------------------------Вм

ВжЛогичес-ВжНе нуженВж Содержит величины, имеющие значенияВж

       Вж  кое        Вж        ВжИстинно или Ложно.                  Вж

+--------+--------+------------------------------------+

Вж  Мемо  ВжНе нуженВж Содержит   блоки  текста,   слишкомВж

       Вж                Вж        Вжбольшие для того, чтобы хранить их вВж

       Вж                Вж        Вжсимвольном поле. Содержимое мемо-по-Вж

       Вж                Вж        Вжлей хранится  в  отдельном файле   сВж

       Вж                Вж        Вжименем  таблицы  и расширением .DBT.Вж

L--------+--------+-------------------------------------

1.1.3. BLOB-поля

               Мемо, форматированное мемо, графичeские, OLE и двоичные поля могут содержать так называемые Двоичные Файлы  Больших Объектов. К этой группе полей применимы определенные правиВнла, поэтому они иногда собирательно обозначаются  как BLOBВнполя. Мемо-поле dBASE таблицы также является BLOB-полем.

1.1.4. Временные таблицы

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

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

- 12 -

---------T-------------------------T--------------------Вм Вж  Имя        Вж       Содержимое        Вж Создается во время Вж

Вж        Вж                Вж     операции        Вж

+--------+-------------------------+--------------------+ Вж Answer Вж Результат запроса        Вж Запрос        Вж

+--------+-------------------------+--------------------+ Вж ChangedВж Копии   первоначального Вж Запрос CHANGETO илиВж Вж        Вжсодержания        измененных Вжоперация добавления Вж

Вж        Вжзаписей                ВжAdd        Вж

+--------+-------------------------+--------------------+ ВжCrosstabВж Кросстаблица                ВжСоздание кросстабли-Вж

Вж        Вж                Вжцы в форме        Вж

+--------+-------------------------+--------------------+ Вж DeletedВж Удаление записи        Вж Запрос DELETE        Вж

+--------+-------------------------+--------------------+ Вж ErrchngВж Записи, которые не могутВж Запрос CHANGETO        Вж

Вж        Вжбыть изменены                Вж        Вж

+--------+-------------------------+--------------------+ Вж Errdel Вж Записи, которые не могутВж Запрос DELETE        Вж

Вж        Вжбыть удалены                Вж        Вж

+--------+-------------------------+--------------------+ Вж Errins Вж Записи, которые не могутВж Запрос INSERT        Вж

Вж        Вжбыть добавлены        Вж        Вж

+--------+-------------------------+--------------------+ Вж Export Вж Специальная  таблица дляВж Операция Export        Вж

Вж        Вжэкспортирования текста  сВж        Вж

Вж        Вжполями     фиксированной Вж        Вж

Вж        Вждлины                Вж        Вж

L--------+-------------------------+---------------------

- 13 -

---------T-------------------------T--------------------Вм

       Вж Import Вж Специальная таблица  дляВж Операция Import        Вж

       Вж                Вжимпортирования   текста сВж        Вж

       Вж                Вжполями     фиксированной Вж        Вж

       Вж                Вждлины                Вж        Вж

+--------+-------------------------+--------------------+

       ВжInsertedВж Добавление записи        Вж Запрос INSERT        Вж

+--------+-------------------------+--------------------+

Вж KeyvoilВж Записи с  дублированным Вж Изменение структурыВж

       Вж                Вжзначением ключевого поля Вжтаблицы или операцияВж

       Вж                Вж                Вждобавления   записейВж

+--------+-------------------------+--------------------+

       Вж Locks  Вж Все   активные  в данномВж FileВжMultiuser        Вж

       Вж                Вжсеансе работы  с  ParadoxВж DisplayВжLocks        Вж

       Вж                Вжзаблокированные записи        Вж        Вж

+--------+-------------------------+--------------------+

       Вж Pal$scrВж Список  исходных  кодов,Вж LanguageВжBrowse        Вж

       Вж                Вжобъектов, методов в формеВж Sources        Вж

+--------+-------------------------+--------------------+

       ВжProblemsВж Непреобразованные записиВж FileВжUtilitiesВж        Вж

       Вж                Вж                ВжImport   RestructureВж

+--------+-------------------------+--------------------+

Вж Struct ВжОпределения полей таблицыВжCreate  Restructure Вж L--------+-------------------------+---------------------

1.2. ФОРМЫ

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

- 14 -

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

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

                      1.3. ОТЧЕТЫ

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

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

                     1.4. ЗАПРОСЫ

       Запрос в Paradox - это некий вопрос об информации в баВнзе данных. При помощи запросов можно:

       - вести поиск или выбор данных в таблице;

       - комбинировать данные из нескольких таблиц;

       - производить вычисления над данными;

       - вставлять данные;

- 15 -

       - удалять данные;

       - изменять данные;

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

       Paradox предоставляет простой,  но гибкий и мощный споВнсоб создания запросов.  В окне Query можно выбрать таблицы, по которым  можно  сделать  запрос.  Затем вводится образец данных, удовлетворяющий условиям,  а  Paradox  выбирает  из таблицы те данные, которые соответствуют этому образцу. Это называется Запрос По Образцу.

1.5. ПРОГРАММЫ

       Программы - это  последовательность   команд  на  языке ObjectPAL (языке разработки  приложений  Paradox),  которые позволяют автоматизировать выполнение определенной последоВнвательности действий над базой данных. Коды ObjectPAL обычВнно "присоединяются"  к  объектам форм,  но можно написать и отдельные программы,  которые будут выполняться  независимо от какой-либо формы. Например, можно написать программу для открытия определенной таблицы и выполнения  вычислений  над одним или более полями этой таблицы.  Программы такого типа запускаются непосредственно из основного окна Paradox, а не в результате того,  что произошло какое-либо событие, котоВнрое запустило на выполнение программу, присоединенную к неВнкоторому объекту формы.

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

- 16 -

1.6. КОНСТРУКЦИОННЫЕ ОБЪЕКТЫ

       Кроме рассмотренных выше объектов Paradox предоставляет набор так  называемых конструкционных объектов,  при помощи которых разрабатывается структура форм и отчетов.  Эти объВнекты создаются при использовании специальных средств, нахоВндящихся на SpeedBar, (линейке, расположенной в верхней часВнти экрана  и содержащей набор кнопок-иконок для вызова разВнличных операций), и могут размещаться на документе, который разрабатывает пользователь, будь то форма или отчет.

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

1.6.1. Текстовые объекты

       Текстовый объект - это объект,  содержащий текст. ПольВнзователь может создать рамку,  в которую можно будет помесВнтить текст. Текст может быть любой длины и любого формата.

Чаще всего текстовые объекты используются для  размеще-

ния заголовков  на  форматах и отчетах или для задания имен полей и таблиц.

1.6.2. Прямоугольники, линии, эллипсы

       Прямоугольники, линии и эллипсы - это объекты,  которые

- 17 -

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

                      1.6.3. Поля

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

                      1.6.4. Таблицы

       Таблица - один из основных объектов Paradox. В разрабаВнтываемых документах (формах или отчетах) можно использовать инструмент Table  для  того,  чтобы  создать столбцы и ряды таблицы, а затем задать и саму таблицу с данными.  В таблиВнцах на  экранных формах и отчетах можно размещать поля и их заголовки гораздо свободнее и разнообразнее,  чем в  режиме просмотра и редактирования таблиц в окне Table.

                   1.6.5. Кросстаблицы

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

- 18 -

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

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

1.6.6. Графики

       Иногда более удобно анализировать и представлять инфорВнмацию в виде графиков и диаграмм.  Paradox дает возможность легко создавать  графики.  Можно изменять тип графика,  его строение и свойства.  Paradox автоматически обновляет  граВнфик, если  изменяются данные в таблице (даже если изменение произошло при работе  другого  сетевого  пользователя  этой таблицы.

1.6.7. Многозаписные объекты

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

- 19 -

1.6.8. Кнопки

       Кнопки - это объекты Paradox, которые можно размещать в формах и  присоединять  к  ним методы ObjectPAL.  Работая с формой, можно щелкнуть мышью на кнопке для того,  чтобы выВнполнить действия,  определяемые  присоединенным методом.  К кнопке можно добавить любой текст или  рисунок,  поясняющий ее значение.

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

1.6.9. Графика

       Графика -  это графические образы,  которые можно помеВнщать в поля графического типа Paradox-таблиц, или размещать как независимый графический объект в форме или отчете.

Рaradox может импортировать графику из  файлов  формата

.BMP,  .EPS,  .PCX, .TIF,        .GIF   или   из  буфера   Windows

Clipboard.

1.6.10. OLE-объекты

       OLE - технология связывания и встраивания объектов. ИсВнпользуя технологию OLE, можно создавать "контейнеры", котоВнрые будут содержать объекты из других приложений Windows.

Так как  технология OLE обеспечивает связь между табли-

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

- 20 -

1.7. ФАЙЛЫ ОБЪЕКТОВ PARADOX

               В таблице ниже приведены расширения файлов,  в  которых Paradox хранит основные объекты.

-----------T--------------------------------------------Вм ВжРасширениеВж  Тип объектов        Вж

+----------+--------------------------------------------+

       Вж .CFG        Вж Файл конфигурации        Вж

+----------+--------------------------------------------+

       Вж .DB        Вж Paradox-таблица        Вж

+----------+--------------------------------------------+

       Вж .DBF        Вж dBASE-таблица        Вж

+----------+--------------------------------------------+

       Вж .DBT        Вж Файл мемо-поля dBASE-таблицы        Вж

+----------+--------------------------------------------+

       Вж .FAM        Вж Список связанных файлов Paradox        Вж

+----------+--------------------------------------------+

       Вж .FDL        Вж Оттранслированная форма        Вж

+----------+--------------------------------------------+

       Вж .FSL        Вж Сохраненная форма        Вж

+----------+--------------------------------------------+

       Вж .FTL        Вж Временная форма        Вж

+----------+--------------------------------------------+

       Вж .INI        Вж Файл конфигурации системы        Вж

+----------+--------------------------------------------+

       Вж .LDL        Вж Оттранслированная библиотека        Вж

+----------+--------------------------------------------+

       Вж .LSL        Вж Сохраненная библиотека        Вж

+----------+--------------------------------------------+

       Вж .LTL        Вж Временная библиотека        Вж

L----------+---------------------------------------------

- 21 -

-----------T--------------------------------------------Вм Вж .MB        Вж Файл мемо-поля Paradox-таблицы        Вж

+----------+--------------------------------------------+ Вж .MDX        Вж Поддерживаемый индекс dBASE-таблицы        Вж

+----------+--------------------------------------------+ Вж .NDX        Вж Неподдерживаемый индекс dBASE-таблицы        Вж

+----------+--------------------------------------------+ Вж .PX        Вж Первичный индекс Paradox-таблицы        Вж

+----------+--------------------------------------------+ Вж .QBE        Вж Сохраненный запрос        Вж

+----------+--------------------------------------------+ Вж .RDL        Вж Оттранслированный запрос        Вж

+----------+--------------------------------------------+ Вж .RSL        Вж Сохраненный запрос        Вж

+----------+--------------------------------------------+ Вж .RTL        Вж Временный запрос        Вж

+----------+--------------------------------------------+ Вж .SDL        Вж Оттранслированная программа        Вж

+----------+--------------------------------------------+ Вж .SSL        Вж Сохраненная программа        Вж

+----------+--------------------------------------------+ Вж .STL        Вж Временная программа        Вж

+----------+--------------------------------------------+ Вж .TV        Вж Установка параметров Paradox-таблицы        Вж

+----------+--------------------------------------------+ Вж .TVF        Вж Установка параметров dBASE-таблицы        Вж

+----------+--------------------------------------------+ Вж .VAL        Вж Критерии допустимых значений и системы        Вж

Вж        Вж ссылок Paradox-таблицы        Вж

L----------+---------------------------------------------

- 22 -

-----------T--------------------------------------------Вм

       Вж .Xnn        Вж Вторичный  простой  пронумерованный  индексВж

       Вж                Вж Paradox-таблицы                            Вж

+----------+--------------------------------------------+

       Вж .Ynn        Вж Вторичный  простой  пронумерованный  индексВж

       Вж                Вж Paradox-таблицы                            Вж

+----------+--------------------------------------------+

       Вж .XGn        Вж Составной вторичный индекс Paradox-таблицы Вж

+----------+--------------------------------------------+

       Вж .YGn        Вж Составной вторичный индекс Paradox-таблицы Вж

L----------+---------------------------------------------

                           2. ОСНОВЫ ПРЕДСТАВЛЕНИЯ ДАННЫХ

                               2.1. КЛЮЧИ

               Paradox поддерживает  два типа формата таблиц - Paradox и dBASE.  При использовании таблиц Paradox-формата  следует понимать, как  работают ключи таблиц (dBASE тоже использует индексы, но в dBASE нет  понятия  первичного  ключа  в  том смысле, как в Paradox).

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

Значение ключа должно быть уникальным для каждой записи

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

               Ключ устанавливает порядок сортировки по умолчанию  заВнписей таблицы.  Paradox сортирует записи таблицы на основаВннии значений поля (полей - в случае  составного  первичного

- 23 -

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

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

2.1.1. Составной первичный ключ

       Можно задавать в качестве ключа  либо  отдельное  поле, либо группу полей. Когда в качестве ключа определена группа полей, его называют составным первичным ключом.

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

       Например, таблица "Клиенты" может иметь несколько запиВнсей, имеющих значение поля "Фамилия" "Сидоров". Аналогично, может быть   несколько  записей  со  значением  поля  "Имя" "Петр". Ни одно из этих полей не идентифицирует запись  одВннозначно. Но  предположим,  что  их комбинация в упрощенном случае (Петр Сидоров) уникальным образом идентифицирует заВнпись (то есть среди клиентов нет двух с одинаковыми фамилиВней и именем). Тогда можно создать для этой таблиццы составВнной первичный ключ,  состоящий из сочетания полей "Фамилия" и "Имя".  Конечно,  этого может быть в реальном  случае  не

- 24 -

достаточно. Как правило,  следует всегда включать в таблицу достаточное количество полей, чтобы обеспечить уникальность каждой записи таблицы.  Если пользователь не может разумным способом создать  составной ключ,  в этой ситуации он может определить поле идентификатора записи, которое имеет единсВнтвенное значение для каждой записи таблицы.  Например,  для таблицы "Клиенты" можно ввести поле "Номер клиента",  задав каждому клиенту  уникальный (и в достаточной степени произВнвольный) номер.

2.2. ИНДЕКСЫ

       Индекс определяет порядок, в котором Paradox имеет досВнтуп к записям таблицы.  Как Paradox,  так и dBASE позволяют создавать у таблицы несколько индексов,  определяющих  разВнличные порядки доступа к записям.  Но Paradox и dBASE рабоВнтают с индексами различным образом.

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

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

- 25 -

2.2.1. Первичный индекс Paradox-таблицы

       Paradox упорядочивает записи в индексированной  таблице в соответствии со значением поля (полей),  являющегося клюВнчом таблицы. Этот порядок называется первичным индексом.

       По умолчанию все индексы (как первичные,  так и вторичВнные) упорядочивают и позволяют получить доступ к записям  в возрастающем порядке  значений  ( от А до Z или от 0 до 9). Например, если в качестве индекса алфавитно-цифровое  поле, записи будут  упорядочены в естественном для каждого нациоВннального языка порядке. Если этот индекс первичный - записи с дублирующимися значениями недопустимы.

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

2.2.2. Вторичные индексы Paradox-таблицы

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

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

- 26 -

неподдерживаемого индекса  не  обновляется  при  изменениях таблицы, но может быть открыт явным образом для использоваВнния. Paradox позволяет открыть только один неподдерживаемый индекс одновременно.

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

       Paradox допускает создание составного вторичного индекВнса, использующего группу полей таблиц.

            2.2.3. Индексирование dBASE-таблиц

       Хотя Paradox  поддерживает  индексные файлы двух формаВнтов: .MDX и .NDX,  рекомендуется использовать только формат .MDX.

2.3. СИСТЕМА ССЫЛОК МЕЖДУ ТАБЛИЦАМИ

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

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

- 27 -

клиенту при  занесении его в таблицу "Клиент",  связанную с таблицей "Заказы" по этому  полю.  Чтобы  обеспечить  такое строгое соответствие (для того, чтобы не было счетов, выпиВнсанных неизвестно кем), можно объявить поле "Номер клиента" заимствованным, использую  связь  с ключом из таблицы "КлиВнент". Тогда Paradox каждый раз,  как только вводится  новый счет и  заполняется и вводится в поле "Номер клиента" иденВнтификационный номер клиента,  проверяет,  допустимо ли  это значение, и есть ли в базе данных клиент с таким номером.

2.3.1. Каскадное обновление

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

       Продолжая предыдущий пример, допустим, возникла необхоВндимость у какого-либо клиента в таблице  "Клиент"  изменить его идентификационный номер "Номер Клиента".  Если при этом не будет использоваться система ссылок, то все заказы в доВнчерней таблице  "Заказы"  не  будут  отслеживать изменения, происходящие с данными о клиентах из таблицы "Клиент".  При использовании системы  ссылок Paradox самостоятельно произВнведет каскадное обновление соответствующих записей в таблиВнце "Заказы". Paradox найдет все записи из таблицы "Заказы", для которых значение  заимствованного  ключа  совпадает  со значением ключа родительской таблицы "Клиент", и заменит их на новое значение идентификационного номера клиента.

- 28 -

3. ТЕРМИНЫ И ПОНЯТИЯ PARADOX

                              3.1. ПСЕВДОНИМ

               Псевдоним - это имя,  которое можно присвоить  каталогу DOS для краткости.  Если пользователь работает с базой данВнных, состоящей из таблиц,  текстовых файлов, форм, отчетов, программ и графиков, находящихся в одном и том же каталоге: C:\PARADOX\PRJ\NEW\PLAN. Используя  диалоговое  окно  Alias Manager, можно дать этой последовательности псевдоним.

Использование псевдонимов дает следующие преимущества:

- избавляет  пользователя от необходимости печатать длинВнные имена каталогов DOS;

- ссылки  к файлам в формах,  отчетах и подобных объектах

Paradox могут  использовать  имена  псевдонимов  вместо указания полного пути доступа к ним;

- в любой момент можно изменить  определение  псевдонима.

Тогда все формы,  отчеты и другие объекты Paradox автоВнматически будут ссылаться к файлам из другого каталога.

3.2. РАБОЧИЙ КАТАЛОГ

               Рабочий каталог Paradox - это каталог,  содержащий табВнлицы, с которыми пользователь работает в данный момент вреВнмени (соответствует текущему каталогу DOS). Рабочий каталог Paradox определяет, какие файлы будут показаны в диалоговом окне, которое открывается при  использовании  команды  меню File|Open или File|Save.  При инсталяции Paradox на отдельВнной машине,  не подключенной к локальной сети, Paradox созВндает каталог  с  именем WORKING в своем системном каталоге. Это рабочий каталог пользователя по умолчанию.

- 29 -

       Можно определить любой каталог в качестве рабочего. PaВнradox присваивает рабочему каталогу псевдоним :WORK:, и есВнли этому каталогу был присвоен ранее другой псевдоним,  PaВнradox все равно будет использовать  для  рабочего  каталога псевдоним :WORK:.

               3.3. ЛИЧНЫЙ КАТАЛОГ

       В многопользовательской среде каждому пользователю  неВнобходимо место для размещения временных объектов. Временные таблицы, такие как,  Answer или Inserted (создающиеся в реВнзультате запросов) должны храниться в неразделяемом каталоВнге, иначе другой пользователь,  работающий  одновременно  и запустивший позже  на  исполнение запрос,  может переписать эти таблицы.  В локальной сети каждый пользователь  Parаdox должен задавать  свой личный каталог для хранения временных объектов.

       Файлы, содержащиеся  в  личном  каталоге  пользователя, будут показаны в диалоговом окне,  которое  появляется  при выполнении команд  File|Open или File|Save вместе с файлами из рабочего каталога. Они располагаются в конце списка файВнлов с префиксом :PRIV:  и доступны только конкретному польВнзователю.

       Задать личный  каталог  можно командой File|Private DiВнrectory. Parаdox присваивает ему псевдоним :PRIV:.

       При установке Parаdox на машине,  не подключенной к сеВнти, личным каталогом по умолчанию будет  каталог  с  именем PRIVATE в системном каталоге Parаdox.

- 30 -

3.4. ИНСПЕКТОР ОБЪЕКТА

       Каждый объект Parаdox содержит в себе меню.  Для  больВншинства объектов Parаdox - таблиц, форм, запросов - это меВнню содержит команды (такие как View, Design, Run). В случае конструкционных объектов   это   меню  предоставляет  выбор свойств данного объекта (например, цвет, формат представлеВнния чисел или стиль отображения текста). Пользователь полуВнчает доступ к этому меню,  инспектируя объект.  Эта возможВнность присуща Parаdox for Windows,  Quattro Pro for Windows и другим объектам фирмы  Borland  и  называется  "инспектор Объекта".

                       III. РАБОТА С СУБД PARADOX

                           1. PARADOX DESKTOP

       Рaradox DeskTop  - это наиболее мощное средство системы Paradox.

       DeskTop является  родительским окном для любого другого окна Paradox. Используя Paradox DeskTop можно:

       - управлять файлами;

       - задавать рабочие параметры среды;

- управлять многопользовательским доступом к данным;

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

       Многие из установленных пользователем параметров  среды

- 31 -

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

       DeskTop является  основным  рабочим окном Paradox.  Все остальные окна открываются на фоне DeskTop.

       Каждый видимый объект Paradox отображается в своем осоВнбом типе окна. Каждый тип окна обладает специфичным ему наВнбором команд  и функций,  применимых только к нему.  Но так как DeskTop содержит все другие  окна,  команды  и  функции DeskTop доступны им всем.

       DeskTop содержит в себе следующие  пункты  меню:  File, Properties, Windows, Help, которые всегда доступны.

                     1.1. МЕНЮ FILE

       Пункты меню  File  осуществляют  весь комплекс операций над файлами,  который позволяет Paradox.  Зайдя в это меню, можно выполнить следующие операции:

       - создать, вызвать, сохранить файл;

       - распечатать документ;

       - работать над каталогами;

       - менять конфигурацию Paradox;

       - выполнять специальные функции.

Некоторые операции подробнее будут описаны ниже.

               1.2. ИСПОЛЬЗОВАНИЕ SPEEDBAR

       В каждом  окне  ниже меню находится набор иконок в виде кнопок и инструментов SpeedBar.  Его предназначение - уско-

- 32 -

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

       Как и меню,  SpeedBar изменяется в зависимости от того, окно какого типа активно.  Каждому типу  окна  присущ  свой SpeedBar.

IV. РАЗРАБОТКА СТРУКТУРЫ ТАБЛИЦЫ

       Таблицы -  основные строительные блоки системы Paradox: все действия,  которые производятся в  Paradox,  каким-либо образом связаны с таблицами.

       Ниже будут рассмотрены вопросы, связанные с разработкой и изменением структуры Paradox- и dBASE-таблиц.

1. РАЗРАБОТКА ТАБЛИЦ

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

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

- 33 -

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

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

                       - определять необходимый тип таблиц.

2. СОЗДАНИЕ ТАБЛИЦ

                       Для создания новой таблицы нужно выбрать пункт меню FiВнle|New|Table или  щелкнуть правой клавишей мыши кнопку Open Table, находящуюся на SpeedBar.  Paradox выведет  на  экран диалоговое окно Table Type.

Paradox поддерживает следующие форматы файлов:

                       - Paradox for Windows;

                       - Paradox;

                       - dBASE IV;

                       - dBASE III+.

Любой из этих форматов можно выбрать, указав на него мышью. При открытии таблицы типа Paradox на  фоне  диалогового

окна Create Table появится следующая структура: ---T--------Field Name-------TType-T-Syze-TKeyВм

               1Вж                    Вж     Вж      Вж   Вж

                       Диалоговое окно Create Table служит для:

                       - ввода имен полей таблицы;

                       - определение типа и размера поля.

- 34 -

       Кроме этого, можно:

       - определить ключевые поля;

       - назначить проверку значений в каждом поле;

       - определить вторичный индекс таблицы;

- назначить для данной таблицы таблицу-справочник;

       - определить систему ссылок к другим таблицам

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

       Пример. Создание Paradox-таблицы

       Для создания Paradox-таблицы нужно:

- ввести имя первого поля в колонке Field Name  перечня полей;

- указать тип поля, переместившись с помощью клавиатуры или мышью в колонку Type;

- переместится в колонку Size и ввести желаемый  размер поля (если это необходимо);

- переместится на вторую строку перечня полей и  повтоВнрить проделанные операции для остальных полей;

- нажать мышью кнопку Save As для сохранения таблицы  и выбора ее имени.

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

Имена полей вводятся в колонку Field Name  перечня  по-

лей. Требования к именам полей:

- максимальная длина имени поля составляет 25 символов; - имя не должно начинаться с символа пробела;

       - каждое поле в таблице должно  иметь  уникальное  имя.

- 35 -

               Нельзя сделать имя уникальным:

- добавлением пробелов в конце имени;

               - изменением верхнего и нижнего регистров букв; - имя поля не должно содержать следующие символы:

                       - { }, [ ], ( );

                       - комбинацию ->;

                       - один символ #.

3. ОПЕРАЦИИ НАД ТАБЛИЦАМИ

3.1. ОБЩИЕ ОПЕРАЦИИ

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

       Операции, связанные с таблицами:

       - вставка, удаление полей;

       - операции с ключевыми полями;

       - заимствование готовой структуры таблицы;

       - редактирование имени поля;

       - изменение порядка следования полей;

       - контроль корректности данных;

       - задание таблицы-справочника;

       - определение вторичных индексов;

       - определение системы ссылок между таблицами;

       - установка пароля доступа к данным;

       - выбор драйвера национального языка.

       Некоторые операции подробнее описаны ниже.

- 36 -

3.2. КЛЮЧЕВЫЕ ПОЛЯ

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

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

3.2.1. Определение ключевых полей

               При определении ключевых полей следует учитывать следуВнющие ограничения:

- таблица  может  иметь только один ключ,  состоящий из одного или нескольких полей;

- ключевые  поля  таблицы должны быть первыми в перечне полей;

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

               Чтобы определить поле как ключевое (или  снять  ключ  с поля), надо переместится в колонку Key перечня полей и проВнизвести двойной щелчок мышью или нажать любую клавишу.

                       3.3. ЗАИМСТВОВАНИЕ ГОТОВОЙ СТРУКТУРЫ ТАБЛИЦЫ

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

- 37 -

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

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

3.4. КОНТРОЛЬ КОРРЕКТНОСТИ ДАННЫХ

               Контроль значений - это условия,  которым должны  удовВнлетворять вводимые в поля данные.

--------------T---------------------------------------Вм Вж Тип контроляВж Значение                        Вж

+-------------+---------------------------------------+

       Вж Required        Вж Это поле каждой записи  таблицы должноВж

       Вж field        Вж содержать не пустое значение                Вж

+-------------+---------------------------------------+

       Вж Minimum        Вж Значения,  вводимые  в  данное        поле,Вж

       Вж        Вж должны быть не меньше указанной  вели-Вж

       Вж        Вж чины                                Вж

+-------------+---------------------------------------+

       Вж Maximun        Вж Значения,  вводимые  в  данное        поле,Вж

       Вж        Вж должны быть не больше указанной  вели-Вж

       Вж        Вж чины                                Вж

+-------------+---------------------------------------+

       Вж Default        Вж Указываемая величина автоматически за-Вж

       Вж        Вж носится в  поле.                        Вж

+-------------+---------------------------------------+

       Вж Picture        Вж Пользователь определяет строку  симво-Вж

       Вж        Вж лов, которая работает  как шаблон  дляВж

       Вж        Вж вводимых данных                        Вж

L-------------+----------------------------------------

- 38 -

3.5. ЗАДАНИЕ ТАБЛИЦЫ-СПРАВОЧНИКА

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

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

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

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

3.6. ОПРЕДЕЛЕНИЕ ВТОРИЧНЫХ ИНДЕКСОВ

       Пользователь имеет возможность присвоить полю или групВнпе полей вторичный индекс чтобы:

- производить быстрый поиск значений в определенных поВнлях;

- иметь возможность другого порядка просмотра таблицы; - связывать таблицы.

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

- 39 -

               Примером использования вторичного индекса может служить задача связывания таблиц "Клиент" и "Заказы" таким образом, чтобы были видны заказы каждого клиента.  Таблица  "Заказы" имеет вторичный индекс,  связанный с полем "Номер клиента". Это означает,  что Paradox может быстро найти все записи  с данным значением номера клиента. Когда связываются таблицы, Paradox для каждого  значения  "Номер  клиента"  в  таблице "Клиент" находит и показывает все совпадающие значения "НоВнмер клиента" в таблице  "Заказы".  Используя  такую  связь, можно создать форму,  содержащую все заказы, сделанные кажВндым клиентом.

               Таблица может иметь несколько вторичных индексов. Можно создавать составные вторичные индексы,  объединяя два и боВнлее полей. Количество сложных вторичных индексов может досВнтигать 16,  а максимальное количество простых вторичных инВндексов равно количеству полей в таблице.

3.7. ОПРЕДЕЛЕНИЕ СИСТЕМЫ ССЫЛОК МЕЖДУ ТАБЛИЦАМИ

                       Система ссылок  подразумевает  соответствие  поля  или группы полей одной таблицы ("дочерней") к ключу другой табВнлицы ("материнской"). Для определения полей дочерней таблиВнцы Paradox считает верными только те значения,  которые суВнществуют в ключевых полях материнской таблицы.

-----------------T------T-------Вм

Вж Номер клиента  Вж Имя  Вж Город Вж     Клиент L----------------+------+--------

       -------------T-------------T-------Вм

ВжНомер заказаВжНомер клиентаВж Имя   Вж    Заказы L------------+-------------+--------

- 40 -

       Paradox запрещает вводить значение поля "Номер клиента" в таблице  "Заказы",  которое  не соответствует какому-либо существующему значению этого поля в таблице "Клиент".

Возможность задать  систему  ссылок  существует  только

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

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

- Cascade:  Все  изменения  значений  ключа материнской таблицы автоматически происходят и в дочерней  таблиВнце. Этот способ определен по умолчанию.  При этом PaВнradox блокирует как материнскую,  так все ее дочерние записи. Если блокировка отвергается (уже заблокироваВнно другим пользователем), Paradox не в состоянии проВнизвести обновление;

- Prohibit:  Этот способ не позволяет изменить значение ключа материнской  таблицы,  если  в дочерней таблице имеются записи,  соответствующие этому значению. НапВнример, если  в  поле "Номер клиента" таблицы "Заказы" имеется значение 350,  Paradox  запретит  менять  это значение в таблице "Клиент". А если ни в одной записи дочерней таблице это значение не встречается, Paradox разрешает изменения в материнской таблице.

       Paradox for Windows - первая Paradox, полностью испольВнзующая возможности системы ссылок.  Но Paradox имеет опции, которые позволяют контролировать работу ранних версий Para-

- 41 -

dox с таблицами, для которых определена система ссылок. Также Paradox предоставляет возможность создать систему

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

V. РАБОТА С ДАННЫМИ В ТАБЛИЦАХ

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

1. ПРОСМОТР ДАННЫХ

               Paradox предоставляет  несколько  способов  просмотра данных:

- использовать окно Table для просмотра данных в таблиВнце, перемещаясь по столбцам и строкам. При этом можно использовать как стандартный  формат  таблиц,  так  и разработанный пользователем;

       - использовать окно Form для отображения табличных  за-

- 42 -

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

- использовать  окно  Report для предварительного просВнмотра отчета на экране перед его распечаткой.

               Paradox позволяет  отображать  одновременно  данные в различных режимах и в отдельных  окнах,  причем  количество открытых окон может быть практически не ограничено.

                       1.1. ИСПОЛЬЗОВАНИЕ ТАБЛИЦ

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

       Чтобы открыть на экране таблицу,  надо выбрать  команду File|Open|Table из меню Paradox Desktop. В появившемся диаВнлоговом окне Open Table выбирается нужная таблица.

       Paradox открывает таблицу в окне Table. При этом меню и SpeedBar отображают операции,  осуществимые  при  работе  с таблицей.

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

- 43 -

1.1.1. Перемещение по таблице

       Для перемещения по записям  таблицы  используется  меню Record или  иконки  на SpeedBar.  Меню Record предоставляет следующие команды перемещения:

       - First - переход к первой записи таблицы;

       - Last - переход к последней записи таблицы;

       - Next - переход к следующей записи;

       - Previous - переход к предыдущей записи;

- Next Set - переход к следующей группе записей,  отобВнражаемых в окне Table;

- Previous  Set  - переход к предыдущей группе записей, отображаемых в окне Table.

       Для перемещения  по  таблице  также  можно использовать клавиатуру и линейку прокрутки.

1.1.2. Изменение способа отображения

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

Можно изменить формат таблицы двумя способами:

       - проинспектировать нужный элемент таблицы;

- пометить  область,  готовую  к изменению,  после чего выбрать соответствующую команду из пункта  меню  ProВнperties.

       Вообще изменение способа отображения включает в себя:

* Непосредственные  манипуляции  с  таблицей - работу с изображением таблицы при помощи мыши.  Это дает  воз-

- 44 -

можность изменять форму, размер и положение на экране любого объекта.

* Манипуляции  со  столбцами  - перемещение,  изменение размеров столбца.

       * Манипуляции со строками.

* Установка режима выравнивания. Режим выравнивания опВнределяет расположение  данных в поле или текста загоВнловка.

* Выбор цвета. Можно изменить цвет любой части таблицы: фона таблицы,  линий сетки,  конкретного поля, фона и символов столбца, а также фона и символов заголовка.

* Выбор  шрифта.  Имеется  возможность изменять внешний вид текста в полях и заголовках.  Можно  при  желании выбирать начертание,  размер,  стиль  и цвет символов шрифта.

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

       * Изменение способа выделения текущей записи.

1.2. ИСПОЛЬЗОВАНИЕ ФОРМ

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

       Для того, чтобы открыть форму из Desktop, нужно выбрать пункт меню File|Open|Form.  После этого появится диалоговое окно Open Document,  которое используется для выбора нужной формы. Для открытия формы текущей таблицы можно либо нажать

- 45 -

мышью кнопку Quick Form на SpeedBar, либо выполнить команду Table|Quick|Form, либо нажать F7.  Если не определена форма для текущей таблицы, Paradox откроет по умолчанию стандартВнную форму.

Над формами Paradox производит следующие операции:

       - масштабирование формы;

       - сохранение настройки окна Form;

       - распечатывание формы.

1.3. РАБОТА С ДАННЫМИ В ТАБЛИЦАХ И ФОРМАХ

1.3.1. Режим View Field (просмотр поля)

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

Paradox имеет три режима просмотра полей:

- Field View - дает возможность перемещаться внутри поВнля от символа к символу;

- Persistent Field View - позволяет перемещаться к друВнгому полю, не отменяя режим просмотра поля;

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

                           1.3.2. Выбор поля

       Когда какое-либо поле делается текущим, Paradox выделяВнет его цветом. Это означает, что поле выбрано. Если напеча-

- 46 -

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

                 1.3.3. Копирование данных

       Paradox дает пользователю возможность копировать данные из таблицы и в таблицу.  Простой командой Edit|Copy пользоВнватель может скопировать данные в Clipboard, предварительно их отметив. Помещенные в Clipboard данные можно перенести в другие поля или другие Windows-программы. Paradox позволяет копировать часть поля, целое поле, группу полей, строку.

Следует отметить,  что  группу  полей можно скопировать

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

1.3.4. Просмотр данных в различных порядках и диапазонах

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

Выбранный индекс  определяет порядок просмотра таблицы.

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

- 47 -

Диапазон может задаваться несколькими способами:

- точным равенством, то есть Paradox выдаст на просмотр только те записи, значения индексов которых совпадают с заданной величиной;

- диапазоном значений, который задается пользователем; - значениями составного индекса.

1.3.5. Поиск информации

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

Paradox осуществляет следующий поиск информации:

       - поиск полей;

- поиск  информации по номерам - номера записям в ParaВнdox-таблицах присваиваются автоматически и не  подлеВнжат редактированию,  они соответствуют позициям запиВнсей в таблице;

       - поиск записей по значению;

- поиск по простым шаблонам - можно  производить  поиск информации по несложным шаблонам;

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

1.4. ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР ОТЧЕТА

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

- 48 -

ввод или редактирование данных. Окно Report является исклюВнчительно средством просмотра.

2. ВВОД И РЕДАКТИРОВАНИЕ ДАННЫХ

       Режим редактирования данных позволяет выполнять следуюВнщие операции:

       - вставлять и удалять записи;

- работать в режимах просмотра полей Field  View,  PerВнsistent Field View и Memo View;

- вырезать,  копировать и вставлять данные из Clipboard и других файлов;

       - отменять сделанные изменения;

- производить поиск данных в режиме Find and Replace;

- вводить графики и OLE-объекты в  таблицы,  редактироВнвать специальные поля (такие, как мемо, форматированВнное мемо) и поля с контролем правильности данных;

       - блокировать записи;

- использовать при  вводе  проверку  данных  по  таблиВнце-справочнику.

                       2.1. ВКЛЮЧЕНИЕ РЕЖИМА РЕДАКТИРОВАНИЯ

       В Paradox  можно  редактировать данные,  открыв таблицу или форму и войдя в режим редактирования. Для этого нужно:

- открыть  таблицу  или форму посредством выбора пункта File|Open;

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

- выбрать   пункт   меню   Table|Edit   Data  или Form|Edit Data;

- 49 -

- нажать кнопку Edit Data на SpeedBar;

               - нажать клавишу F9.

       Следует отметить, что ввод данных в мемо, форматированВнные мемо и OLE-поля может отличаться от ввода данных в поля других типов. Эти типы полей будут рассматриваться ниже.

2.2. ВСТАВКА И УДАЛЕНИЕ ЗАПИСЕЙ

       Paradox позволяет вставлять новые  записи  или  удалять существующие при работе как с таблицей, так и с формой. Для вставки пустой записи перед текущей выбирается  пункт  меню Record|Insert (нажимается Ins).

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

       Запись, вставленная в таблицу, не имеющую ключей, будет сохранена в том месте, где ее вводили.

       Во время работы в форме, содержащей одну запись, вставВнка новой записи выглядит как очистка  экрана.  При  нажатии Ins запись  на  экране  не будет содержать ни каких данных. Это происходит потому,  что Paradox  сразу  перемещается  к только что вставленной записи. Следует помнить, что Paradox всегда вставляет новую запись перед отмеченной текущей  заВнписью. Также, в Paradox-таблице нельзя восстановить удаленВнную запись,  в то время,  как при работе с  dBASE-таблицами физического удаления данных не происходит, удаленные данные можно опять просмотреть.

- 50 -

       2.3. ВЫРЕЗАНИЕ, КОПИРОВАНИЕ И ВСТАВКА ДАННЫХ С ПОМОЩЬЮ

CLIPBOARD

       Кроме того, что у пользователя есть возможность вручную вводить данные в поля,  он может  вырезать  или  копировать данные из одного поля и вставлять их в другое поле и в друВнгие Windows-приложения. Вырезанные или скопированные данные остаются в Clipboard до тех пор, пока пользователь не очисВнтит Clipboard или не выйдет из Windows. Clipboard обеспечиВнвает временное  хранение  данных до их перемещения в другие области.

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

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

2.4.1. Копирование в файл

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

       Например, для того,  чтобы скопировать графические данВнные в .BMP-файл, нужно выбрать пункт меню Edit|Copy To. ПоВнявится диалоговое окно Cjpy To Graphic File, в котором можВнно выбрать имя существующего графического файла (содержимое поля перезапишет  файл) или ввести имя нового файла в тексВнтовом окошке New File Name. При этом, Paradox может копиро-

- 51 -

вать графические данные только в файлы .ВМР формата.

       Во время работы с формой,  для копирования строк текста (поля любого типа,  включая мемо, числовые или даты) в файл следует дать команду Edit|Copy To. Paradox может копировать текстовые данные в файлы форматов .ТХТ или .РХТ.

       Находясь в окне Table,  можно скопировать  в  текстовый файл только мемо и форматированные мемо-поля.

2.4.2. Вставка данных из файла

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

       Тип файлов,  отображенных в окне Paste Form зависит  от выбранного пользователем типа поля или объекта. Если выбраВнно графическое поле,  то Paradox  откроет  диалоговое  окно Paste From  Grahpic File со словом <Graphic> в списке Type. В графическое поле или объект  можно  вставлять  данные  из файлов, имеющих форматы .BMP, .PCX, .TIF, .GIF, .EPS.

Обращается внимание на то,  что при  импорте  данных  в

графическое поле  или  объект  из  файлов,  имеющих форматы .PCX, .TIF,  .GIF, .EPS, Paradox сначала преобразовывает их в .ВМР-формат.

       Если пользователь выбрал в таблице мемо или  форматироВнванное мемо-поле,  Paradox  откроет  диалоговое  окно Paste From File со словом  <Text>  в  списке  Type.  Текст  можно вставлять из файлов,  имеющих форматы .PXT, .TXT, PTF (если используется форма,  то можно вставлять текст в  любой  тип поля, включая графический и OLE).

- 52 -

2.5. ЗАМЕНА ДАННЫХ

       Paradox обеспечивает два средства быстрой замены данных существующего поля:

- команда Record|Locate and Replace  для  замены  всего содержимого поля;

- команда Edit|Search Text для замены последовательносВнти символов в мемо-поле.

       Пункт Record|Locate and Replace используется для поиска записи с  конкретным  значением в поле и замены его на друВнгое. Для замены поля во  всей  таблице  лучше  использовать запрос CHANGETO  так  как  в этом случае команду Lokate and Replace придется повторять для каждой записи таблицы.

       В мемо  и форматированных мемо-полях можно использовать команду Edit|Search Text для  поиска  фрагментов  текста  и (необязательно) замены  их  на другой текст.  Для этого исВнпользуется диалоговое окно Search & Replace.

2.6. РЕДАКТИРОВАНИЕ СПЕЦИАЛЬНЫХ ТИПОВ ПОЛЕЙ

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

2.6.1. Редактирование мемо и форматированных мемо-полей

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

- 53 -

ко, при вводе данных в мемо и форматированные мемо-поля PaВнradox практически не вводит ограничения на  объем  вводимых данных. Во время редактирования мемо и форматированных  меВнмо-полей можно  использовать режим Memo View,  который преВндоставляет некоторые возможности по обработке текста и  поВнвышает функциональные возможности клавиатуры по сравнению с режимом Field View.

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

2.6.2. Ввод графических изображений

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

- использованием  команд  Cut,  Copy и Paste и при посВнредстве Clipboard;

       - командой Paste From.

       Сам Paradox не имеет возможности  редактировать  графиВнческие изображения.

       Для ввода графического изображения надо войти  в  режим редактирования и  вставить графическое изображение из ClipВнboarb или файла.

2.6.3. Использование технологии OLE

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

- 54 -

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

2.6.4. Редактирование полей с контролем корректности данных

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

                 2.7. БЛОКИРОВАНИЕ ЗАПИСЕЙ

       Блокирование записей  - очень важная и необходимая опеВнрация для сохранения целостности базы данных в многопользоВнвательской среде. Если пользователь при работе в среде (лоВнкальной или глобальной) заблокировал запись, другие пользоВнватель могут ее просматривать, однако не могут отредактироВнвать или удалить.  Paradox автоматически блокирует  запись, когда конкретный пользователь начинает ее редактировать,  и снимает блокировку, когда он выходит из нее.

       Перед началом  редактирования также можно заблокировать запись вручную.  Блокировка записей  исключает  возможность для других пользователей установить свою собственную блокиВнровку. По этой же причине она также запрещает доступ к  за-

- 55 -

писи в таблице другим пользователям.  Для блокировки запись нужно отметить и выбрать пункт Record|Lock. После того, как запись заблокирована,  команда  Lock в меню сменится на UnВнlock, которая,  в свою очередь, освобождает запись для досВнтупа.

2.8. ИСПОЛЬЗОВАНИЕ ТАБЛИЦЫ-СПРАВОЧНИКА

       Данный режим позволяет вводить только те данные,  котоВнрые уже  существуют  в  другой таблице таблице-справочнике. Например, можно задать для  поля  "Номер  клиента"  таблицы "Заказы" таблицу-справочник  "Клиенты",  чтобы  случайно не принять заказ от несуществующего клиента.

       Paradox может  использовать  таблицу-справочник  в двух режимах:

- Just  Current Field :  данные в текущем поле - единсВнтвенное, что Paradox проверяет по  таблице-справочниВнку;

- All Corresponding Fields :  Paradox  проверяет  поле, для которого задан справочник,  и переносит из него в таблицу еще несколько полей (Paradox выбирает  совпаВндающие имена полей).

VI. ЗАПРОСЫ

       Запрос -  основное  средство  доступа  к информации баз данных. Запросом называется  некоторая  совокупность  дейс-

- 56 -

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

Составляя запрос, пользователь может указать в нем:

       - интересующие его таблицы;

       - поля, из которых должен состоять запрос;

       - интересующие его записи;

       - необходимые преобразования данных.

       Запросы можно  использовать для осуществления следующих операций:

       - вставка новых записей;

       - удаление записей;

       - изменение значений;

       - создание новых полей.

       С помощью запроса можно также решать определенный класс математических задач.

                1. МЕХАНИЗМ РАБОТЫ ЗАПРОСА

       В Paradox используется метод,  называемый запрос по обВнразцу. При  составлении запроса пользователь задает Paradox некоторый образец,  в соответствии с которым Paradox выдает результат. Это  позволяет пользователю сосредоточить внимаВнние на определенных заданных полях записи.

       Предположим, имеется таблица "Клиент" с данными по клиВнентам. Если в ней пользователя интересуют лишь имена и  адВнреса клиентов,  то для этого ему нужно открыть окно Query и задать образец желаемой таблицы,  поставив в  нужных  полях

- 57 -

соответствующий знак.  Результат появится во временной табВнлице Answer.

       Paradox переписывает таблицу Answer  при  каждом  новом запросе и уничтожает ее по окончании сеанса работы.  Чтобы, при необходимости, сохранить содержимое запроса, надо присВнвоить таблице Answer другое имя.

2. ОКНО QUERY

       Новый запрос  в Paradox создается с помощью команды FiВнle|New|Query. При этом открывается пустое окно Query, а поВнверх его - диалоговое окно Select File, в котором пользоваВнтель выбирает те файлы,  по которым он  хотел  бы  получить запрос. При  этом,  если выбранные в окне Select File файлы защищены паролем,  то Paradox попросит ввести пароль, чтобы запрос по этому объекту был принят к исполнению.

               2.1. ОБРАЗЕЦ ЗАПРОСА

       После выбора нужных файлов окно Select File закроется и Paradox поместит в окно Query образцы запросов по всем объВнектам, находящимся в выбранных файлах. При выборе многотабВнличного запроса Paradox помещает в это окно образцы  запроВнсов по всем таблицам, автоматически связывая их в соответсВнтвии со связями внутри этих многотабличных объектов.

Вообще, образец запроса имеет вид той таблицы,  к кото-

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

       При работе  с  образцом  запроса  пользователю доступны следующие операции:

- 58 -

- связывание таблиц с помощью элемент-примеров;

       - включение поля в запрос;

       - удаление операций запроса.

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

       Paradox допускает следующие включения:

- значком _.  При этом в таблице Answer будут представВнлены только уникальные значения поля, отсортированные в порядке возрастания;

- значком _+. Этот значок используется при необходимосВнти получить все значения поля, включая повторяющиеся;

- значком __ - для сортировки значений в убывающем  поВнрядке (от A до Z);

- значком _G.  Этот  значок  используется  для  задания группы записей в SET-запросах. Он позволяет группироВнвать записи по значениям полей,  не включая сами поля в таблицу Answer.

2.2. ИЗМЕНЕНИЕ СТРУКТУРЫ ТАБЛИЦЫ ANSWER

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

       Если таблица Answer содержит поля с повторяющимися имеВннами (из двух или более таблиц),  то  Paradox  оставит  имя первого из  этих  полей без изменения,  а остальные назовет "имя-1", "имя-2" и т.д. Новые вычисляемые поля помещаются в конец таблицы и получают имя в соответствии с формулой,  по которой производятся вычисления,  если они не переименованы

- 59 -

пользователем.

       Перед тем,  как начать выполнение запроса, пользователь может изменить некоторые свойства таблицы Аnswer:

- дать таблице Answer новое имя,  что приводит к сохраВннению таблицы по окончании сеанса работы с Paradox;

- выбрать ее тип - Paradox- или dBASE-таблица;

- изменить порядок следования полей в таблице.

       Также, перед  выполнением  запроса можно указать способ сортировки записей в таблице Answer.

3. СЕЛЕКЦИЯ ЗАПИСЕЙ

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

Условия могут накладываться для:

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

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

* выбора записей,  не содержащих определенных значений. Для этого используется оператор NOT.  Он ставится пеВнред теми  значениями,  появления которых пользователь хочет избежать.  Этот оператор может  ставится  перед точными значениями,  диапазонами, шаблонами и другими операторами.

- 60 -

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

3.1. ПОИСК ПО ШАБЛОНУ

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

* оператор @ заменяет любой символ.  При задании шаблоВннов можно  использовать любое количество таких операВнторов.

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

3.2. УСЛОВНЫЕ ОПЕРАТОРЫ

Условные операторы в Paradox - это операторы AND и OR. Оператор AND выполняет  тип действий  "логическое И"  и

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

       При необходимости выбора записей, удовлетворяющих одноВнму из  двух  (или  нескольких) условий,  можно использовать оператор Paradox OR, выполняющим действие "логическое ИЛИ". Если значения-аргументы оператора OR относятся к одному поВнлю, то их следует вводить в это поле,  разделяя их ключевым

- 61 -

словом OR.  Если  они принадлежат разным полям,  то их надо вводить на разных строках образца запроса.

4. ИСПОЛЬЗОВАНИЕ ЭЛЕМЕНТ-ПРИМЕРОВ

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

       Пользователь может создавать элемент-примеры сам,  либо это может  сделать  за него Paradox.  При работе на цветном мониторе Paradox выделяет их цветом, на монохромном - подсВнвечивает.

5. АРИФМЕТИЧЕСКИЕ ВЫРАЖЕНИЯ В ЗАПРОСАХ

       Арифметические операторы  применяются  для  составления арифметических выражений со значениями, содержащимися в поВнлях запроса.   Paradox  допускает  использование  следующих арифметических операторов:

       - сложение +;

       - вычитание -;

       - умножение *;

       - деление /;

       - группирующие скобки ().

       В числовых полях Paradox и dBASE можно использовать люВнбые арифметические  операторы.  Оператор сложения можно исВнпользовать также в  алфавитно-цифровых  полях  для  слияния

- 62 -

значений.

6. ВЫЧИСЛЕНИЯ В ЗАПРОСАХ

       Помимо возможности извлекать нужные данные  из  таблиц, можно производить  над  ними вычисления с помощью оператора CALС. Использование этого оператора позволяет:

- составлять и редактировать математические выражения; - комбинировать значения из нескольких полей  из  одной

или нескольких таблиц;

       - комбинировать значения полей с константами;

- создавать  новые  поля  и  помещать в них вычисленные значения.

       Если в  запросе  используется оператор CALС,  в таблице Answer появляется дополнительное поле  (по  умолчанию  -  в конце таблицы),  содержащее результаты вычислений.  Paradox автоматически присваивает этому полю имя в  соответствии  с формулой, по которой производились вычисления,  однако, его можно изменить с помощью оператора AS.

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

       CALC-выражение может содержать:

       - константы;

       - элемент-примеры;

       - арифметические операторы.

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

                       - 63 -

это будет так:

       T-Описание товара-T-Количество---T--Цена----------------Вм

Вж _               Вж _Ва_ КоличествоВа. Вж_Ва_ ЦенаВа.,calcВа_ КоличествоВа.Вж

       Вж                 Вж                  Вж *Ва_ ЦенаВа.               Вж

Выделенные слова - элемент-примеры.

                       7. ИЗМЕНЕНИЕ ТАБЛИЦ С ПОМОЩЬЮ ЗАПРОСОВ

               Механизм создания  запросов в Paradox дает пользователю

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

- INSERT: вставить записи в таблицу; - DELETE: удалить записи из таблицы;

- CHANGETO: изменить определенные значения.

7.1. INSERT-ЗАПРОС

               INSERT-запрос позволяет  вставлять  в  таблицу-приемник записи из  нескольких  таблиц-источников.  При  этом таблиВнца-приемник и источник могут быть разных  типов,  например, Paradox и dBASE.

               INSERТ-запрос создает  в личном  каталоге  пользователя временную таблицу  Inserted.  Она переписывается при каждом выполнении запроса и удаляется по окончании сеанса работы с Paradox. Если записи, вставляемые в таблицу-приемник, конфВнликтуют с ее системой ссылок,или  правилами  проверки  корВнректности данных (при выполнении INSERT-запроса не учитываВнется только правила соответствия данных  шаблону),  Paradox помещает такие записи во временную таблицу Errins.  НарушеВнние системы ссылок может произойти,  например,  при попытке

- 64 -

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

7.2. DELETE-ЗАПРОС

       DELETE-запрос применяется для удаления из таблицы опреВнделенных записей. Он удаляет только записи целиком, создает в личном каталоге пользователя таблицу Deleted,  содержащую удаленные записи.  Paradox поступает с ней также,  как и  с таблицей Inserted.  Можно  восстановить  удаленные  записи, применив INSERT-запрос с таблицей Deleted в качестве источВнника. Если  таблица не имеет ключа,  то возвращенные записи независимо от их прежних позиций  будут  помещены  в  конец таблицы. При  попытке  удалить  записи,  отсутствие которых привело бы к нарушению системы ссылок,  Paradox не произвоВндит удаления, а лишь помещает копии этих записей во временВнную таблицу Errdel.

7.3. CHANGETO-ЗАПРОС

       CHANGETO-запрос позволяет  изменять  значения  полей  в таблице, которые удовлетворяют заданным пользователем услоВнвиям. Этот запрос бывает крайне  полезен  при  однообразном изменении большого   количества  значений.  CHANGETO-запрос создает в личном каталоге  пользователя  временную  таблицу Changed с исходными оригиналами записей,  измененных в проВнцессе выполнения запроса.  Она также  перезаписывается  при каждом при  каждом  исполнении CHANGEТО-запроса и удаляется по окончании сеанса работы с Paradox.  При попытке изменить с помощью CHANGETO-запроса значений ключевых полей (первичВнных или вторичных),  которая привела бы к нарушению системы

- 65 -

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

                         8. СЛОЖНЫЕ ЗАПРОСЫ

       Используя возможности групповых запросов Рaradox, польВнзователь может:

- Выбирать из базы данных записи по групповым статистиВнческим характеристикам (например, найти виды товаров, на которые поступило два и более заказов)

- Производить статистические  вычисления  внутри  групп записей (например,  вычислить  средние значения сумм, на которые сделаны заказы, по каждой стране)

- Сравнивать  характеристики групп записей с отдельными записями (например,  кто из зарубежных клиентов  разВнместил заказов больше, чем любой российский)

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

       Для выполнения  специальных  вычислений  над  заданными группами записей  в  Paradox  предусмотрены  статистические операторы. Таких операторов существует пять:

       - AVERAGE - усредняет значение в группе

- COUNT - вычисляет количество значений в группе

- MAX - определяет максимальное значение внутри группы - MIN - определяет минимальное значение

       - SUM - суммирует значения внутри группы

       По умолчанию  все  статистические операторы кроме COUNT производят вычисления над всеми значениями в группе  (COUNT по умолчанию подсчитывает только неповторяющиеся значения). Однако, Paradox предусматривает использование модификаторов

- 66 -

статистических операторов:

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

- UNIQUE - означает, что статистическая операция произВнводится только над неповторяющимися значениями

       Также в  Paradox  существует оператор ONLY,  который не относится к статистическим, поскольку не производит никаких вычислений, однако,  в  остальном действует аналогично:  он объединяет в группы записи,  содержащие  одно  определенное значение.

VII. РАЗРАБАТЫВАЕМЫЕ ДОКУМЕНТЫ

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

       Прежде чем начинать разработку документа,  пользователю необходимо решить,  что он хочет создать - форму или отчет. Формы в Paradox используются для отображения данных из табВнлиц в самых различных форматах и в сочетании с графическими объектами. Формы разрабатываются, в основном, для использоВнвания на  экране и,  прежде всего,  для облегчения процесса ввода данных.

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

- 67 -

1. РАЗРАБОТКА МОДЕЛЕЙ ДАННЫХ

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

       Разработка любого документа начинается с построения моВндели данных.  В  Paradox для этого нужно войти в пункт меню File|New и выбрать тип документа (форму или отчет). Paradox выведет на экран диалоговое окно Data Model, одинаковое для формы и для отчета. В нем Paradox представляет пользователю список таблиц,  поля  которых  могут  быть использованы для разработки документа.  Пользователь должен  только  указать нужные ему таблицы.

       Однако, можно вообще не использовать ни одной таблицы в качестве основы  документа.  При  это Paradox создаст бланк документа, не связанный ни с какими данными.

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

1.1. РАЗРАБОТКА МНОГОТАБЛИЧНОЙ МОДЕЛИ ДАННЫХ

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

- 68 -

       - определить для него набор таблиц;

- определить отношение между таблицами (связать их).

       Все таблицы, данные из которых будут использоваться при разработке документа,  должны быть указаны в окне Data  MoВнdel.

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

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

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

Многозначными называются такие отношения между таблица-

ми, при которых каждой записи одной таблицы может соответсВнтвовать более одной записи другой таблицы.  Например, какой

- 69 -

либо клиент  (одна  запись таблицы "Клиенты") может сделать любое количество заказов (несколько записей таблицы  "ЗакаВнзы").

1.2. ВЫБОР ИСХОДНОГО ЧЕРТЕЖА ДОКУМЕНТА

       При нажатии в окне Data Model кнопки ОК, Paradox откроВнет диалоговое окно Design Link,  которое представляет собой средство просмотра и выбора одного из типов исходного  черВнтежа документа. В просмотровом окошке изображаются поля моВндели данных.

       Для одно-  и  многотабличных  документов  в окне Design Link доступны различные наборы опций, тип окна определяется разработанной моделью данных. Однако, всегда можно:

       - выбрать поля,которые нужно поместить в документ;

- назначить или отменить присутствие меток полей;

       - определить,  для чего разрабатывается документ -  для просмотра на экране либо для вывода на принтер.

       Диалоговое окно Design Link используется абсолютно одиВннаково как при разработке форм,  так и при разработке отчеВнтов. Единственное отличие состоит в способе изображения доВнкумента.

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

- 70 -

2. СРЕДСТВА И ПРИЕМЫ РАЗРАБОТКИ ДОКУМЕНТОВ

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

используются в  окнах Form Design и Report Design.  В обоих окнах процесс создания документа состоит из одних и тех  же операций: выбора объектов,  инспектирования,  использования инструментария, расположенного на SpeedBar, и широкого круВнга доступных приемов оформления чертежа документа.

2.1. ВЫБОР ОБЪЕКТОВ

Документ в Paradox состоит из различных частей - объек-

тов, над которыми можно производить различные операции (пеВнремещение, изменение размера,  редактирование и т.д.).  Для выбора на чертеже  документа  объектов  служит  специальный инструмент SpeedBar Selection Arrws. При выборе какого-либо объекта, вокруг него появляется рамка с  темными  квадратаВнми-"ручками", "потянув" за которые пользователь может измеВннять размеры объекта. Paradox позволяет также выбирать несВнколько объектов  для  выполнения  действий над всей группой одновременно.

2.2. ИНСПЕКТИРОВАНИЕ ОБЪЕКТОВ

       По существу,  инспектирование - это определение свойств объектов. Каждый объект имеет свое меню, опции которого опВнределяют его внешний вид (и,  иногда,  поведение). Это меню вызывается при инспектировании.  Например,  при выборе поля как объекта, его меню, наряду с другими, содержит следующие опции: имя, цвет, рамку, шрифт,  форму и т.д.   Кроме  того, некоторые свойства объектов задаются  командами  языка  Ob-

- 71 -

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

2.3. ПАЛИТРА СВОЙСТВ

       Некоторые свойства Paradox изображает  в  виде  палитр. Палитра не называет свойство,  а показывает его,  поэтому в виде палитр,  обычно,  представляются  визуальные  свойства объектов (цвет,  штриховка и т.д.). Палитра в Paradox может быть как одноразовой (после выбора в ней какого-либо свойсВнтва она исчезает), так и "плавающей", закрепленной на экраВнне, к которой пользователь будет  иметь  возможность  обраВнщаться по мере необходимости.

       Палитры в Paradox бывают следующие:

- Палитра цветов.  В меню большинства объектов присутсВнтвует пункт Color, выбрав который, пользователь вызыВнвает на экран палитру цветов. Ее можно сделать плаваВнющей, что отличает ее изображение на экране,  и, напВнример, инспектируемый  объект  меняет  свои  свойства синхронно с перемещением по опциям палитры. Кроме тоВнго, она позволяет пользователю самому создавать удовВнлетворяющие его цвета, смешивая в различных пропорциВнях имеющиеся.

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

- 72 -

               ки.

       - Палитра штриховок.

       - Палитра линий.

       - Палитра шрифтов.

2.4. ИНСТРУМЕНТАРИЙ SPEEDBAR

       На SpeedBar  окон  разработки находится ряд кнопок-икоВннок, которые служат для размещения  в  документе  объектов; они называются инструментами. С помощью инструментария SpeВнedBar пользователь может:

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

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

- Создавать  в документе текстовые объекты с различными характеристиками, переменных (в зависимости от размеВнра вводимого текста) и фиксированных размеров.

- Размещать  графические  изображения.  Щелкнув   мышью иконку Graphic,  можно  импортировать графику из WinВнdows Clipboard и файлов форматов .BMP,  .PCX,  .TIF и других. При  этом вставляемые изображения можно масшВнтабировать  с различными коэффициентами масштаба.

- Выполнять  растровые операции.  В большинстве случаев при определении  в  документе  графического   объекта

- 73 -

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

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

       - Размещать многозаписные объекты.

VIII. КРОССТАБЛИЦЫ И ГРАФИКИ

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

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

       Графики в Paradox используются и в формах, и в отчетах, кросстаблицы - только в формах. Кросстаблицы и графики созВндаются на основе модели данных того  документа,  в  котором

- 74 -

они размещаются.

1. КРОССТАБЛИЦЫ

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

       Фактически, кросстаблицы  предоставляют доступ к "скрыВнтой" информации, содержащейся в таблицах, производя следуюВнщие операции:

- классификацию данных по одной или нескольким  категоВнриям;

- статистическую обработку данных внутри категории;

       - сортировку статистической информации;

- отображение данных в формате электронной таблицы. Простым примером  таблицы  является ее одномерный вари-

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

Вж                              ВжAmExВжCODВжCashВжCheckВжCreditВж MCВжVisaВжВж

Вж                              L----+---+----+-----+------+---+-----Вж

Вж -----------------Вм-----T---T----T-----T------T---T----ВмВж Вж ВжNumber of OrdersВжВж 16 Вж 7 Вж 15 Вж 21  Вж 93   Вж 34Вж 38 ВжВж Вж L-----------------L----+---+----+-----+------+---+-----Вж L--------------------------------------------------------- В качестве  примера  изображена таблица,  созданная по полю "Форма оплаты" таблицы "Заказы".  Кросстаблица  показывает,

- 75 -

как размещенные  в  какой-то фирме заказы распределились по способам оплаты.

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

2. ГРАФИКИ

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

       По умолчанию Paradox создает табулярный график,  произВнводящий статистическую обработку данных одного поля таблицы по категориям,  которые задаются значениями  другого  поля. Табулярный график - единственный тип графика, который можно использовать в отчетах. Также имеется возможность использоВнвания статистических графиков. Статистический график - граВнфик, для оси Y которого задана статистическая  операция,  а на оси Х откладываются значения полей таблиц.

       Виды графиков, реализуемых Paradox:

       - количественные графики;

       - линейно-временные графики;

       - процентные графики.

       Каждый из перечисленных видов может быть реализован  на

- 76 -

экране различными способами.  Например,  процентные графики Paradox может представить в виде простого столбца, объемноВнго, круга, "таблетки" и т.д.

IX. ОБМЕН ДАННЫМИ

       Чрезвычайно важной и полезной чертой  графической  обоВнлочки Windows  является  возможность  динамического  обмена данными между ее программами в реальном  масштабе  времени. Для обмена  данными  в  Windows используются два механизма: Динамический Обмен Данными (DDE) и Связывание и Встраивание Объектов (OLE). Если DDE позволяет обмениваться данными, то OLE позволяет хранить данные из других  Windows-программ  и иметь непосредственный доступ к функциональным возможностям этих программ.

       Программа, данные которой являются источником при обмеВнне, называется сервером, а программа, которая получает данВнные при обмене, называется клиентом. Paradox использует оба механизма обмена  данными  и  способен  быть  DDE-клиентом, DDE-сервером и OLE-клиентом.

       Использование механизма DDE позволяет поддерживать  диВннамические связи  между  полями  Paradox-таблиц и данными в других Windows-программах. Использование механизма OLE позВнволяет встраивать в Paradox целые файлы из OLE-сервера. При этом пользователь имеет доступ к OLE-серверу непосредственВнно из Paradox и может с его помощью производить необходимые изменения встроенных данных.

- 77 -

1. МЕХАНИЗМ DDE

       Как уже говорилось,  Paradox можно использовать  в  каВнчестве DDE-сервера и в качестве DDE-клиента.

       Когда пользователь помещает данные из Paradox в  другие Windows-программы, он   использует   Paradox   в   качестве DDE-сервера.

       Предположим, что в электронной таблице (например, QuatВнtro Pro for Windows) выполняется  некоторая  вычислительная процедура. Значение,  над которым пользователь хочет выполВннить вычисление,  находится в поле  Paradox-таблицы.  Чтобы "доставить" в электронную таблицу необходимые данные,  надо скопировать значение поля Paradox-таблицы в Clipboard  WinВнdows, а затем вставить его в нужную ячейку электронной табВнлицы соответствующей командой. При этом не просто копируетВнся значение,  а задается механизм динамического обмена данВнными (DDE),  который сообщает электронной таблице,  где исВнкать значение  для вычислений в ячейке.  При перемещении по записям Paradox-таблицы значение в связанной ячейке  электВнронной таблицы изменяется в соответствии со значением,  наВнходящемся в  соответствующем  поле  текущей  записи   ParaВнdox-таблицы. Следует отметить,  что пользователь может свяВнзать с DDE-клиентом не только отдельные поля таблицы,  но и всю таблицу. Таким образом можно связывать Paradox с любыми другими Windows-программами, которые поддерживают DDE (напВнример, текстовыми процессорами).

       Чтобы использовать Paradox в качестве DDE-клиента, надо поместить информацию  о  связи  с  данными  из  другой WinВнdows-программы в какое-либо алфавитно-цифровое  поле  ParaВнdox-таблицы. Для   этого   надо   скопировать  значение  из DDE-cервера в Windows Clipboard, затем выбрать нужное алфа-

- 78 -

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

2. МЕХАНИЗМ OLE

       Механизм OLE позволяет хранить и использовать данные из других Windows-программ и иметь доступ к их функциям непосВнредственно из  Paradox.  Если  DDE  позволяет Paradox иметь доступ к источнику данных, но  хранит  только  указатель на источник, то OLE позволяет не только хранить,  но и отобраВнжать данные из других Windows-программ. Например, можно поВнместить документ,  состоящий из сотен страниц, в единственВнной OLE-поле и просматривать его непосредственно  из  ParaВнdox.

       Paradox может быть только OLE-клиентом.  Нельзя  помесВнтить данные из Paradox в другие программы,  используя мехаВннизм OLE.  Как только  данные  помещаются  из  других  WinВнdows-программ в OLE-поля Paradox-таблиц,  форм или отчетов, пользователь получает возможность вызвать программу-сервер, с помощью которой можно,  например,  отредактировать данные OLE-поля. Например,  можно в OLE-поле поместить рисунок  из графического редактора PaintBrush, а потом из Paradox войти в него для  редактирования  введенного  рисунка,  используя все его возможности.

- 79 -

Х. ЗАКЛЮЧЕНИЕ

       Что всегда отличало Paradox, так - это его возможности. Недаром способ обработки данных Paradox фактически является стандартом для других СУБД. Появление разновидности Paradox - Paradox for Windows расширило и без того обширные возможВнности этой СУБД. Возможность работать с данными не только в таблицах и формах, но и в кросстаблицах, - является еще одВнним шагом вперед по пути к  оптимизации  обработки  данных, предпринятым фирмой Borland. Наличие механизмов обмена данВнными делает Paradox требуемым компонентом как  на  машинах, работающих в сети, так и на одиночных. Наличие всесторонних механизмов реализации запросов экономит время пользователя, повышает наглядность изображения данных,  тем самым еще поВнвышая возможности продукта.

       Единственное, что не отличает версии Paradox  for  WinВнdows от  версий Paradox for DOS,  так это простота работы с данными, простота в составлении запросов, простота в реалиВнзации новых функций.  Пользователи,  работавшие с  версиями Paradox для  ДОС,  при работе с версиями для Windows найдут исключительно новые, дополнительные возможности, используюВнщие все  преимущества  и  возможности  системы Windows и ее приложений.

       К сожалению, на момент написания для широкой публики не появились материалы о объектно-ориентированном языке-прилоВнжении Paradox ObjectPAL, который улучшает возможности своеВнго предшественника языка PAL.

       С появлением  версии  Paradox for Windows фирма Borland устранила, по сути,  единственный  существовавший  до  того

- 80 -

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

- 81 -

СПИСОК ЛИТЕРАТУРЫ

1. Paradox for  Windows:  Практическое  руководство.Под редакцией Оспищева Д. А. Издательство АОЗТ "Алевар", 1993 (2 части).

2. Paradox - это очень просто.  Чарльз Сигель.  Москва, 1993.

3. Справочник  по  программированию  в системе Paradox. Москва,        1992.

4.

Вместе с этим смотрят:

Сумматор
Таблицы истинности
Табличный процессор
Текстовый редактор