ßçûê ïðîãðàììèðîâàíèÿ Ñè++ ïðåäñòàâëÿåò ñîáîé ðàñøèðåíèå ÿçûêà Ñè äëÿ ïðîãðàììèðîâàíèÿ îáúåêòîâ è èõ êëàññîâ. Ïðè ýòîì èñïîëüçîâàíèå êëàññîâ ýêâèâàëåíòíî âïëîòü äî ñèíòàêñèñà èñïîëüçîâàíèþ áàçîâûõ òèïîâ äàííûõ.
1. Система Paradox
Paradox представляет из себя реляционную базу данных, разработанную формой Borland. Данная база данных предназначена как для непрофессионалов, которым нужно решать задачи типа картотеки и пр., так как обладает достаточно развитой и понятной системой меню и подсказки, так и для профессиональных программистов, разрабатывающих сложные информационные системы, используя при этом язык запросов QBE или язык разработки приложений PAL. Кроме версий под DOS, разработана версия Paradox for Windows. Требования к техническим средствам и сравнительные характеристики по быстродействию см. Глава ??. Поддерживаются следующие типы полей:
- алфавитно-цифровые (строковые);
- числовые;
- денежные;
- дата;
- Memo - поля;
- графические;
- OLE - поля;
- BLOB (Binary Large OBject);
Причем, типы полей от Memo до Blob поддерживаются только в Paradox for Windows.
Строковые поля позволяют содержать любую последовательность символов длиной до 255 байт.
Числовые поля могут содержать как целые, так и действительные числа с числов цифр до 15.
Денежные поля - тоже что и числовые с двумя знаками после запятой, отдельный тип служит только для определения Paradox-ом формата вывода данных полей.
Поля даты - соответственно содержат дату и позволяют проводить над собой соответствующие операции сравнения и вычитания.
Мемо - поля содержат любой текст неограниченной длины (вместе с атрибутами текста - шрифт, начертание, цвет и др.)
В графических полях могут содержаться графика типа bitmat.
В OLE - полях могут содержаться объекты от других приложений Windows.
В BLOB - полях можно хранить любые данные по выбору пользователя (на самом деле с точки зрения Paradox, Memo, Graphic и OLE - поля также являются полями типа BLOB). В настоящий момент возможно хранение объектов MultiMedia, чертежи и другие приложения.
Достаточно удобным является тот факт, что для всех типов полей существует значение "пустое поле".
Также следует отметить тип данных "BLOB", т.к. в полях такого типа можно хранить любые данные произвольного размера, что выгодно отличается от MEMO-полей в dBASE и Clipper, которые позволяют хранить только текст, да и то ограниченного об'ема (4K).
Вся работа по созданию и работе с таблицами, подготовке отчетов и запросов, созданию достаточно сложных приложений, не требующих каких-либо сложных расчетов проводится в единой
интегрированной среде при помощи системы меню. Система обладает достаточно широкими возможностями по манипулированию данными и построению отчетов, некоторыми полезными статистическими и алгебраическими функциями для создания расчетных задач.
Функции манипулирования данными можно разделить на следующие достаточно стандартные группы:
- работа с таблицами;
- работа с отдельными записями;
- подготовки отчетов;
- работа с запросами;
- работа с сетью;
- работа с макросами;
- работы с деловой графикой.
Функии работы с таблицами позволяют создавать таблицы, переименовывать, удалять, копировать и, что достаточно важно, модифицировать структуру таблиц, даже если в них уже находятся данные. Также, что немаловажно, все эти операции производятся не над отдельными файлами (как, скажем, в dBase), а над всем семейством таблиц (включая файлы данных, индексов, запросов и отчетов). Имеются и такие операции реляционной алгебры, как объединение и вычитание ?таблиц?отношений?.
Функции работы с записями - стандартные (добавить, удалить, отредактировать).
Удобными средствами обладает генератор отчетов - форму отчета можно "нарисовать" на экране и получить фактически то, что вы видите. Генератор отчетов позволяет создавать как отчеты в "стандартной" (табличной) форме, так и отчет в свободной форме (в т.ч. наклейки, деловые письма и пр.), производить группировку отчета по значениям полей (причем нескольких уровней вложенности), использовать вычисляемые поля.
Функции запросов реализованы на реляционном языке QBE, причем отчеты можно формировать и по запросным формам. В Paradox for Windows построение запросов еще более
упрощено - для связей таблиц друг с другом достаточно просто провести линии между соответствующими полями.
Функции работы с сетью позволяют получить доступ к удаленной БД, заблокировать данные для защиты от доступа других пользователей на время модификации, установить защиту по паролю от несанкционированного доступа.
Функции работы с макросами позволяют практически создавать сценарий работы с пользователем и делать некоторые простые приложения.
Система деловой графики позволяет по таблицам строить до шести функций в виде различного рода диаграмм и графиков.
Если всех перечисленных возможностей недостаточно, то можно воспользоваться языком построения приложений PAL. Данный язык позволяет воспользоваться всеми перечисленными выше
возможностями, т.к. из него можно иметь доступ к функциям основного меню, а также обладает дополнительными средствами, характерными для языков программирования (управляющие структуры
типы if - then - else, циклы, переменные, операторы ввода-вывода, дополнительные математические и статистические функции, возможность создания процедур и библиотек процедур) и средствами доступа к продукту фирмы Borland - SQL-link. Средствами Pal можно создавать пользовательские меню, окна и
прочие радости для неискушенного пользователя, для которого картинка важнее, чем содержание.
В системе имеется отладчик, с помощью которого можно достаточно удобно отлаживать программы на PAL. К сожалению, для работы программ на PAL необходима либо система Paradox, либо соответствующий модуль исполнения, т.е. проблематичной становится возможность распространения программ (каждый пользователь должен приобрести соответствующий Run-time модуль для исполнения программ.
По показателям быстродействия система находится в первых рядах среди подобных.
Система поддерживает следующие индексы - первичный (не может быть повторяющихся ключевых полей), вторичный - по одному полю, и составной - по группе полей. К сожалению, если таблица имеет несколько индексов, то при работе с записями производится модификация только одного индекса, а все остальные будут перестраиваться либо по окончании работы с таблицей, либо по запросу пользователя. Можно сделать этот процесс "прозрачным" для пользователя (первая возможность - индексы перестраиваются при закрытии таблицы), на ясно, что это достаточно сильно замедляет работу с подобными таблицами и причиняет пользователю некоторые неудобства (особенно если таблицы больших размеров).
Система поддерживает доступ к БД на сервере по сети типа Novell, 3Com, Starlan, Banyan, а также другими, совместимыми с NetBios и обеспечивает необходимую блокировку данных как на уровне таблиц, так и на уровне отдельных записей. Paradox for Windows позволяет работать со всеми типами сетей, поддерживаемых Windows. Система имеет и такую полезную особенность, как возможность определить во время работы , менялись ли данные в таблицах, к которым имеют доступ несколько пользователей одновременно, хотя это и увеличивает нагрузку на сеть и может создать некоторые проблемы при наличии большого числа пользователей .
Данные в таблицах хранятся в их естественном виде без преобразования, а не в виде символьных строк, как это принято в формате dBase, что сказывается на ускорении работы и уменьшении размеров самой базы данных.
Имеются средства экспорта и импорта данных из/в формат Qattro/Pro, 1-2-3, Symphony, dBase, VisiCalc, а в системе Paradox for Windows возможно работать с файлами dBase без преобразования.
Таким образом, система достаточна удобна как для неподготовленного пользователя, который хочет решить свою мелкую задачку типа записной книжки - за счет развитой системы меню и подсказки; и удобна для профессионального программиста, который решает достаточно сложные задачи - за счет богатых возможностей, предоставляемых системой, мощного реляционного языка запросов QBE, развитых средств построения отчетов, наличия языка построения приложений, имеющего выход на SQL-link; развитые
средства защиты данных от несанкционированного доступа. Все это позволяет строить сложные приложения, работающие в сети со многими пользователями. Но отсутствие возможности получить исполняемый модуль накладывает ограничения на широкое распространение разработанных программ (хотя Run-Time модуль стоит достаточно дешево, все-таки психологически лучше купить одну или несколько программ у одного изготовителя, чем связываться с несколькими) А работа фактически в режиме интерпретации PAL хоть и практически не сказывается при построении сложных информационныо-поисковых систем, в которых время на поиск данных значительно превышает время выполнения расчетов, но накладывает ограничения на системы, в которых кроме задач поиска стоят достаточно сложные задачи обработки данных. Но Paradox for Windows позволяет преодолеть это ограничение, т.к. в нем возможно иметь доступ к функциям, написанных на обычных языках программирования и собранные в динамические библиотеки (DDL). Так что можно пользоваться этой возможностью, хотя перенос программ в среду Windows (в том числе