Библиотека: А. Горев, С. Макашарипов, Р. Ахаян. Эффективная работа с СУБД

Глава 3
Обзор возможностей и особенностей различных СУБД
3.1. Средства быстрой разработки приложений
3.2. Visual FoxPro
Project Manager
Database Designer
Form Designer
Visual Class Designer
Query / View Designer
Connection Designer
Report/Label Designer
Menu Designer
Вспомогательные средства разработчика
3.3. Access
Запросы
Формы
Отчеты
Макросы
Система защиты
3.4. Visual Basic
3.5. MS SQL Server
3.6. Руководство для покупателя

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

3.1. Средства быстрой разработки приложений

    Фраза, вынесенная в заголовок этого параграфа, в англоязычной компьютерной литературе имеет очень лаконичную аббревиатуру - RAD (Rapid Application Development) и все чаще встречается на страницах специализированных изданий. Что это такое? Это очередной этап, причем этап революционный, развития информационных технологий. Естественная реакция компьютерной индустрии на информационные потребности быстроразвивающегося общества.
    В этом параграфе мы изучим основные черты рассматриваемых в книге средств создания приложений для обработки данных и попытаемся их сравнить.
    В мире уже используются десятки миллионов персональных компьютеров и их число постоянно растет. Компьютеры применяются в тех областях, где о них не помышляли еще год назад. Компьютеры начинают вытеснять даже такие, казалось бы, незыблемые атрибуты цивилизации, как телевизор и другую привычную нам бытовую технику. А увеличение числа и расширение сферы применения компьютеров ведет к увеличению потребности в программном обеспечении. Единственный путь, уводящий от необходимости превратить все трудоспособное человечество в программистов, - резкое повышение эффективности средств разработки программ. Эта идея и воплощается в современных версиях пакетов программ для создания систем автоматизации обработки данных, которые отвечают требованиям RAD. Можно выделить следующие отличительные черты таких средств разработки:

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

    Ни один строитель не построит дом быстрее малыша, складывающего его из кубиков. Задача современного средства разработки - дать нам много разных кубиков. Задача программиста - взять нужный кубик и поставить его в нужное место. Это основная идея RAD!
    Перечень современных средств разработки систем автоматизации обработки данных, в которых заложены идеи RAD, весьма обширен. Почти каждый месяц появляются новые версии этих продуктов той или иной фирмы - производителя программного обеспечения. Они включают все новые и новые возможности, облегчающие труд программиста. В этой книге мы расскажем, как создать систему автоматизации обработки данных с помощью средств разработки Корпорации Microsoft. "Почему Microsoft?" - спросит пытливый читатель. Авторы все вместе и каждый по отдельности дали на это несколько ответов:

  • Microsoft - самая крупная и на данный момент наиболее удачливая фирма-производитель программного обеспечения.
  • Программами Microsoft пользуются десятки миллионов человек во всем мире.
  • Лично я знаю и умею использовать только средства разработки Microsoft.
  • Средства разработки Microsoft отлично интегрированы между собой, поддерживают все современные протоколы обмена данными, и поэтому всегда можно использовать наиболее эффективный в конкретной ситуации пакет программ.

    В последующих главах на конкретных примерах мы покажем наиболее эффективные решения, которые можно реализовать с помощью рассматриваемых программ. А сейчас попробуем очертить сферу применения средств разработки Microsoft. Эта компания в настоящий момент предлагает пять пакетов программ, которые могут быть использованы для создания пользовательского приложения по обработке данных: Access, SQL Server, Visual Basic, Visual C++ и Visual FoxPro. Эти средства могут быть использованы как по отдельности - для решения конкретной поставленной задачи, так и в качестве интегрированного набора, каждый компонент которого может быть использован при разработке больших проектов масштаба предприятия. С этой точки зрения характеристика всех пяти продуктов приведена в табл. 3.1.

Таблица 3.1. Сравнение средств разработки Microsoft
Название продуктаОсновные преимуществаОсновное назначение
AccessПростота освоения. Возможность использования непрофессиональным программистом. Имеет мощные средства подготовки отчетов из БД различных форматов Создание отчетов произвольной формы на основании различных данных. Разработка не коммерческих приложений.
SQL-ServerВысокая степень защиты данных. Мощные средства работы с данными. Высокая производительностьХранение больших массивов данных. Хранение данных, требующих соблюдения режима секретности или при не допустимости их потери.
Visual BasicУниверсальность. Возможность создания компонентов OLE. Невысокие требования к мощности ПЭВМСоздание приложений средней мощности, не связанных с большой интенсивностью обработки данных. Разработка компонентов OLE. Создание приложений для интеграции компонентов Microsoft Office.
Visual C++Универсальность. Наибольшая скорость работы приложения. Неограниченная функциональностьСоздание компонентов приложения для выполнения критичных по скорости процессов или обеспечения функциональности, не достижимой в других средствах разработки.
Visual FoxProВысокий уровень объектной модели. Высокая скорость обработки данных. Интеграция объектно-ориентированного языка программирования с Xbase и SQL. МногоплатформенностьСоздание приложений масштаба предприятия. Создание приложений для работы на различных платформах (Windows 3.x,, Windows 95,, Macintosh и т. д.).

    Рассмотрим теперь более подробно перечисленные в табл. 3.1 средства разработки за исключением пакета Visual C++, который, являясь инструментом профессионала, даже для краткого рассказа потребует книги более объемной, чем лежащая перед вами.
    Какие общие черты имеют рассматриваемые средства разработки, подтверждающие наше утверждение о возможности их совместного использования для разработки пользовательских приложений различного уровня сложности? Во-первых такие новые технологии, как OLE, ODBC, DAO, RDAO, ActiveX и пр., которые они поддерживают. В этой книге мы постарались обратить на них самое пристальное ваше внимание. Эти технологии закладывают возможность использования в одном приложении данных, хранящихся в различных форматах. Мы можем легко разрабатывать приложения, независимые от данных. Помимо этого, за счет OLE Automation, мы можем использовать функциональные возможности различных пакетов программ для выполнения с данными специфических операций. Классическим примером такой возможности является подготовка в приложении, написанном на Visual FoxPro, данных, хранящихся в формате Access, для вывода в виде сложного графика с использованием Мастера подготовки графиков Excel.
    Конечно, при совместном использовании различных средств разработки приложений нас больше всего будут интересовать данные. В табл. 3.2 приведен перечень типов данных, доступных в рассматриваемых средствах разработки. Прочерки в двух предпоследних колонках таблицы обозначают, что для этого типа данных задание конкретных величин не требуется.

Таблица 3.2. Типы данных
Тип данныхVisual FoxPro Access и Visual Basic MS SQL ServerДлинаЧисло десятичных разрядовЗанимаемый объем
Binary ImageНетdbLongBinarybynary(n) n байт-до 1,2 Гбайт
ByteНетdbBytetinyint1 -1 байт
Character TextCdbTextchar(n), varchar(n) n-4 байта
CountНетdbLongНет--4 байта
CurrencyYdbCurrencymoney--8 байт
DateDНетНет--8 байт
DateTimeTdbDatedatetime--8 байт
Logical (Yes/No) LdbBooleanbit--1 байт
NumericNНетfloatndот 1 до 20 байтов
IntegerНетdbIntegersmallint -2 байта
IntegerIdbLongintn-4 байта
DoubleBdbDoublefloat-d8 байт
FloatF floatn-от 1 до 20 байтов
General (OLE Object) GdbLong-Binaryimage -4 байта
MemoMdbMemotext--4 байта
SingleНетdbSinglereal 4 байта
Character (binary) CНетНетn-1 байт на символ
Memo (binary) MНетНет--4 байта
  • Binary Image. Любые данные в двоичном виде. Используется для хранения изображений, файлов и т. д.
  • Byte. Целое положительное число от 0 до 255.
  • Character. Символьное выражение может содержать любые символы (до 254 для одного поля).
  • Count. Счетчик, который автоматически наращивает свое значение при добавлении записи. Начальное значение 1.
  • Currency. Денежное выражение для числовой величины. Выводит число с четырьмя десятичными разрядами и установленным обозначением используемой денежной единицы.
  • Date. Выражение для даты может содержать день, месяц и год.
  • DateTime. Выражение дата и время может содержать время, день, месяц и год.
  • Logical. Булево выражение для .T. или .F..
  • Numeric. Числовое выражение может содержать целые или дробные числа со знаком.
  • Integer (dbInteger). Целое число в диапазоне от -32,768 до +32,767.
  • Integer (dbLong). Целое число. Можно хранить числа от -2147483647 до 2147483646.
  • Double. Числа с плавающей точкой двойной точности. Можно хранить значения от 4.94065645841247E-324 до 1.79769313486232E308.
  • Float. То же, что числовое выражение. Оставлено для совместимости.
  • General. Поле для ссылки на объект OLE.
  • Memo. Поле примечаний для ссылки на блок данных.
  • Single. Число с плавающей точкой одинарной точности. Можно хранить отрицательные числа от -3.402823E38 до 1.401298E-45 и положительные числа от 1.401298E-45 до 3.402823E38.
  • Character (binary). Символьное выражение, не подвергаемое трансляции в другую кодовую страницу.
  • Memo (binary). Поле примечаний для ссылки на блок данных, не подвергаемых трансляции в другую кодовую страницу.

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


Рис. 3.1. Функциональная схема интерфейса СУБД

3.2. Visual FoxPro

    Visual FoxPro - не просто следующая версия одной из наиболее быстрых СУБД для персональных компьютеров. Это совершенно новая программа, которая позволяет легко сделать то, что в предыдущих версиях давалось с величайшим трудом или было просто недоступно. Главное окно Visual FoxPro приведено на рис. 3.3.


Рис. 3.3.

    Интерфейс Visual FoxPro отвечает представлениям о современной графической среде; напоминая интерфейс иных программ Microsoft, делает работу интуитивно понятной. Основная работа с данными в Visual FoxPro выполняется с помощью различных инструментальных средств, поэтому команды меню часто имеют вспомогательный характер и их состав гибко меняется в зависимости от того, какое средство активно в данный момент. Дадим краткую характеристику основным командам меню.
    Меню File включает основные функции для работы с файлами:

  • New - создает новый файл. Тип создаваемого файла можно выбрать из появляющегося диалогового окна, представленного на рис. 3.4.

Рис. 3.4.
  • Open - открывает существующий файл.
  • Close - закрывает активное окно. Если вы удерживаете клавишу Shift, закрываются все открытые окна.
  • Save - сохраняет изменения, сделанные в активном файле.
  • Save As - сохраняет активный файл с другим именем.
  • Revert - отменяет все изменения, сделанные в активном файле с момента последнего сохранения.
  • Import - позволяет импортировать данные в таблицу Visual FoxPro.
  • Export - позволяет экспортировать данные из Visual FoxPro в другие форматы.
  • Page Setup - вызывает диалоговое окно для установки параметров страницы отчета или этикетки.
  • Print Preview - позволяет просмотреть на экране результат выполнения отчета или этикетки.
  • Print - выводит на печать или в файл текстовый файл, программу, отчет, этикетку, содержимое окна Command или буфера обмена (Clipboard).
  • Send - позволяет отправить электронную почту при наличие на компьютере соответствующих средств.
  • Exit - закрывает Visual FoxPro.

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

  • Undo - отменяет последнее выполненное действие.
  • Redo - восстанавливает последнее отмененное действие.
  • Cut - удаляет и записывает в буфер обмена выделенный фрагмент или элементы управления.
  • Copy - записывает в буфер обмена выделенный фрагмент или элементы управления.
  • Paste - копирует из буфера обмена хранящиеся там данные в место расположения курсора.
  • Paste Special - связывает или встраивает из буфера обмена хранящиеся там OLE-объекты в место расположения курсора.
  • Clear - удаляет выделенный фрагмент или элементы управления.
  • Select All - выделяет весь текст или элементы управления в активном окне.
  • Find - выводит диалоговое окно поиска фрагмента текста.
  • Replace - выводит диалоговое окно поиска фрагмента текста и его замены на другой фрагмент.
  • Go To Line - выполняет быстрый переход на указанный номер строки в текстовом файле.
  • Insert Object - выводит диалоговое окно со списком объектов, которые можно встроить в активную форму или редактируемое поле типа General.
  • Object - выводит список действий, поддерживаемых активным объектом (например, при просмотре содержимого поля типа General).
  • Links - выводит диалоговое окно для редактирования или удаления связи с активным объектом

    Меню View позволяет управлять появлением на экране вспомогательных средств, например панелей инструментов, и выводить на экран данные. При отсутствии на экране каких-либо средств разработки в этом меню доступна только одна команда - Toolbars, которая выводит диалоговое окно для выбора размещаемых на экране панелей инструментов.
    Меню Format появляется всегда, когда на экране есть активное окно, и позволяет изменять внешний вид отображаемых данных с помощью следующих команд:

  • Font - выводит диалоговое окно изменения шрифта и его характеристик.
  • Enlarge Font - увеличивает размер отображаемого в активном окне текста.
  • Reduce Font - уменьшает размер отображаемого в активном окне текста.
  • Single Space - устанавливает один межстрочный интервал для отображаемого в активном окне текста.
  • 1 ½ Space - устанавливает полуторный межстрочный интервал для отображаемого в активном окне текста.
  • Double Space - устанавливает двойной межстрочный интервал для отображаемого в активном окне текста.
  • Indent - позволяет сдвинуть вправо линию или несколько линий текста на один интервал табуляции в окне редактора или окне Command.
  • Remove Indent - позволяет сдвинуть влево линию или несколько линий текста на один интервал табуляции в окне редактора или окне Command.

    Меню Tools позволяет выполнить различные вспомогательные действия:

  • Wizards - запускает один из имеющихся Мастеров.
  • Spelling - запускает программу проверки правописания для содержимого текстового файла или поля примечаний (можно использовать для проверки правильности написания команд).
  • Macros - позволяет присвоить клавиатурной комбинации выполнение какого-либо действия или набора действий.
  • Class Browser - выводит на экран утилиту работы с классами.
  • Trace Window - выводит на экран окно для визуального отображения выполняемого программного кода.
  • Debug Window - выводит на экран окно для отображения текущих значений в процессе выполнения программы.
  • Options - выводит на экран диалоговое окно для установки параметров конфигурации среды разработки.

    Меню Program содержит команды, связанные с выполнением программ:

  • Do - запускает программу на выполнение.
  • Cancel - заканчивает выполнение
  • Resume - продолжает выполнение программы со строки, на которой она была приостановлена командой Suspend.
  • Suspend - приостанавливает выполнение программы без выгрузки ее из памяти, оставляя возможным продолжение ее работы командой Resume.
  • Compile - компилирует программу в псевдокод. Меню Window содержит команды управления окнами:
  • Arrange All - располагает все открытые окна на экране так, чтобы каждое было видимо.
  • Hide - скрывает активное окно.
  • Clear - стирает содержимое активного окна.
  • Circle - выполняет переход к следующему открытому окну.
  • Command Window - делает активным или открывает окно Command. Среди рассматриваемых средств разработки это окно является уникальным, так как позволяет немедленно выполнять почти что все команды Visual FoxPro и, соответственно, видеть результат их работы.
  • View Window - делает активным или открывает диалоговое окно View, которое содержит основной инструментарий для работы с данными.

    Меню Help содержит команды, которые позволяют быстро получить необходимую информацию о работе с Visual FoxPro.
    Отличительные черты Visual FoxPro можно описать следующим образом:

  1. Обеспечение возможности быстрой разработки прикладной программы базируется на включении средств, которые позволяют повысить скорость работы программиста. В первую очередь это средства объектно-ориентированного программирования, позволяющие пользователю формировать компоненты своего проекта (объекты), которые затем могут многократно использоваться. В связи с этим, традиционный Xbase язык в Visual FoxPro 3.0 значительно расширен, что позволяет создавать истинные объекты, классы и подклассы. Кроме того, объекты могут быть созданы с помощью визуальных средств и многократно использоваться в любое время.
  2. Обеспечение полного набора средств для управления событиями. Традиционно в Xbase от программиста требовалось написать собственный драйвер для обработки необходимого набора событий или положиться на READ-состояние ожидания, которое моделирует обработку события системой. В Windows число событий, к которым может обращаться пользователь, весьма велико, и, следовательно, обработка событий является непростой задачей. Visual FoxPro 3.0 имеет истинно управляемую событиями модель, так что по умолчанию система раньше, чем пользователи, обрабатывает объектные события. Кроме того, программист теперь имеет полный доступ к набору стандартных, основанных на функционировании Windows событий (например, движения мыши, которые допускают перетаскивание объектов).
  3. Обеспечение мощного набора инструментальных средств для программиста. Разработчики систем автоматизации обработки данных кроме мощного набора визуальных средств проектирования могут использовать широкие возможности по интеграции систем хранения данных и доступа к серверам данных с помощью технологии ODBC. Основные новшества - это расширение встроенного языка SQL, возможность обновления данных на сервере через редактирование курсоров, встроенный механизм обеспечения транзакций, возможность обращения к серверу на том диалекте SQL, который поддерживает сервер.
    Наличие словаря данных делает более быстрой разработку структуры баз данных и облегчает ее дальнейшую эксплуатацию и поддержку.
  4. Обеспечение полной интеграции Visual FoxPro 3.0 в семейство прикладных программ Microsoft. Единый интерфейс с наиболее популярными прикладными программами Microsoft делает работу в интерактивном режиме интуитивно понятной. Поддержка правой кнопки мыши позволяет избежать долгих путешествий по системе меню и значительно облегчает изучение новых возможностей СУБД. Просто выберите курсором объект и нажмите правую кнопку мыши! На некоторых диалоговых окнах, которые часто используются в работе на полосе заголовка, появился переключатель в виде анимационной пиктограммы (push pin), позволяющий легко включить режим, при котором это окно будет всегда расположено на переднем плане. Visual FoxPro обеспечивает полную поддержку OLE 2.0, что облегчает взаимодействие с другим программным обеспечением в среде Windows. Помимо оставшейся возможности загрузки внешних функций посредством команды SET LIBRARY появилась возможность обращения к функциям динамических DLL библиотек Windows посредством команды DECLARE.
  5. Совместимость с ранее разработанным программным обеспечением в среде FoxPro.

    В Visual FoxPro система организации данных наиболее близка к теоретическим основам реляционной модели и позволяет более естественно выполнять операции реляционной алгебры.
    Основная единица хранения данных - это таблица, в столбцах и строках которой хранятся данные, как это и было раньше в DBF-файле. Таблица сохранила расширение файла DBF и имеет прямую совместимость со "старыми" DBF-файлами. Таблицы объединяются в базу данных, в которой можно описать все связи, устанавливаемые между полями отдельных таблиц, правила проверки, которые будут определять реакцию системы на вносимые изменения, добавление или удаление данных и правила проверки целостности данных в БД. Файлы баз данных имеют расширение DBC и при открытии автоматически поддерживают все перечисленные установки для входящих в нее таблиц. При необходимости можно иметь и таблицы, не входящие в БД, - свободные таблицы.
    Visual FoxPro обеспечивает поддержку значений NULL и выполнение операций с этими данными в соответствии со стандартом ANSI. Это облегчает задачу представления неизвестных данных и взаимодействие с MS Access и базами данных SQL, которые могут содержать такие типы значений.
    Таким образом, база данных в Visual FoxPro - это основной элемент организации данных, который, помимо формирования структуры представления информации, выполняет функции словаря данных за счет поддержки следующих функциональных возможностей:

  • Допускаются длинные имена таблиц.
  • Каждому полю и таблице можно давать комментарии.
  • Допускается использование длинных имен полей.
  • Для полей помимо идентификаторов можно использовать заголовки, которые могут использоваться как в окне Browse, так и в качестве заголовков для колонок в объекте Grid.
  • Введены значения по умолчанию для полей.
  • Предусмотрены правила проверки для полей и записей при изменении и вводе новых данных.
  • Имеются триггеры для поддержания целостности данных.
  • Поддерживаются постоянные связи между таблицами, размещенными в БД.
  • Имеются процедуры БД для описания сложных условий правил проверки.
  • Можно использовать соединения для связи с внешними источниками данных.
  • Поддерживаются локальные и внешние просмотры.

    Основным средством редактирования данных в оболочке FoxPro являются полноэкранные средства Browse и Edit (Change). Browse позволяет редактировать данные в наиболее привычном для пользователя виде - табличном, а Edit - в виде колонки полей. Для просмотра данных из таблицы, открытой в какой-либо рабочей области, открывается отдельное окно. Для просмотра или редактирования данных в таблице достаточно открыть нужную таблицу и в меню View выбрать команду Browse. Вид открывающегося при этом окна Browse показан на рис. 3.5.


Рис. 3.5. Окно Browse

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


Рис. 3.6.

    Переключаться между этими двумя видами просмотра данных можно с помощью соответствующих команд в меню View. При этом работа с данными не прерывается, меняется только вид представления информации. Обратите внимание, что, как видно на рис. 3.5 и 3.6, если в таблице описаны заголовки для полей, они используются в качестве идентификаторов. На этих же рисунках даны необходимые пояснения по управлению окном просмотра с помощью мыши.
    Для ввода и редактирования данных могут использоваться приемы, обычно применяемые при работе с данными в программах для Windows. Используйте возможности, предлагаемые в меню Edit. Нажатие на клавишу Tab или Enter приводит к перемещению курсора в следующее поле, а для возврата в предыдущее удобно использовать сочетание клавиш Shift + Tab. Учтите, что при достижении курсором последнего символа в поле при вводе данных Visual FoxPro по умолчанию подает звуковой сигнал и переводит курсор в следующее поле.
    Окна Browse или Edit являются мощными средствами просмотра и редактирования данных. Дополнительные возможности для достижения наивысшего удобства работы заложены в меню Table. Что предлагают нам команды этого меню?

  • Properties - выводит на экран диалоговое окно, позволяющее установить характеристики для таблицы, открытой в данной рабочей области.
  • Font - вызывает стандартное диалоговое окно Windows, которое позволяет выбрать удобный шрифт и подобрать его характеристики.
  • Go to Record - позволяет быстро перейти к нужной записи, выбрав одну из следующих опций: Top - на первую запись, Bottom - на последнюю, Next - на следующую после текущей запись, Previous - на предыдущую после текущей, Record# - на запись с указанным номером. Не забудьте, что данные в окне просмотра располагаются в порядке их номеров, только если вы не используете какой-либо индекс. Опция Locate позволяет найти требуемую запись по ее содержимому, указав соответствующее выражение для поиска.
  • Append New Record - добавляет в таблицу одну новую запись.
  • Toggle Deletion Mark - помечает для удаления текущую запись или убирает эту отметку, если текущая запись уже помечена для удаления.
  • Append Records - позволяет перейти в режим добавления записей, при котором новая запись будет автоматически добавляться после ввода данных в текущую. Добавленная запись будет сохранена, если вы ввели в нее хотя бы один символ. Мы настоятельно рекомендуем добавлять данные в таблицу именно этим методом, так как он позволяет избежать появления в таблице большого числа ненужных пустых записей.
  • Delete Records - выводит диалоговое окно, позволяющее указать записи, которые необходимо пометить для удаления.
  • Recall Records - выводит диалоговое окно, позволяющее указать записи, в которых необходимо убрать пометку для удаления.
  • Remove Deleted Record - запускает команду PACK для физического удаления помеченных для этого записей.
  • Replace Field - позволяет указать записи, данные в которых нужно заменить на указанное значение.
  • Size Field - дает возможность изменить ширину колонки в окне для вывода данных из текущего поля. При этом вы изменяете ширину колонки, а не длину поля в таблице. При достижении нужной ширины колонки необходимо нажать клавишу Enter. Если ширина колонки меньше, чем длина поля в таблице, данные будут прокручиваться при перемещении курсора внутри колонки.
  • Move Field - позволяет переместить текущую колонку в окне.
  • Resize Partitions - позволяет изменить размеры частей окна просмотра или разбить это окно на две части, если этого не было сделано ранее. Разбиение окна позволяет оставить на экране какое-либо поле или поля при горизонтальном прокручивании данных. Это очень удобно при работе с таблицами, которые имеют большое количество полей. Пример разбиения окна Browse приведен на рис. 3.7. Мы можем установить различные виды просмотра данных в отдельных частях окна. Для этого достаточно перейти в нужную часть окна и в меню View выбрать соответствующую команду. Для больших таблиц можно рекомендовать организовать окно так, как это показано на рис. 3.8. В левой части окна просмотр данных установлен в стиле Browse и сюда помещена колонка с ключевыми данными для быстрого поиска нужных данных. Правая часть окна организована в стиле Edit, что позволяет видеть данные сразу из всех полей нужной записи.

Рис. 3.7.

Рис. 3.8. Комбинирование двух видов представление данных в одном окне
  • Link Partitions - позволяет синхронизировать перемещение по записям таблицы независимо от того, в какой части окна мы перемещаем записи. При отмене этой триггерной команды в каждой части окна просмотра записи будут перемещаться независимо.
  • Change Partitions - обеспечивает переход из одной части окна в другую без использования мышки.
  • Rebuild Indexes - позволяет в случае необходимости привести индексы в соответствие данным в таблице.

    Для работы с данными, расположенными в полях примечаний, достаточно два раза щелкнуть мышкой в нужной ячейке окна или переместить туда курсор и нажать клавиши Ctrl + PgDn.
    Visual FoxPro 3.0 продолжает поддерживать стандартное процедурное программирование Xbase, и при желании мы можем не обращать внимания ни на какую "объектность", однако новые расширения языка дают пользователям мощность и гибкость объектно-ориентированного программирования, что предопределяет всю логику и методику разработки прикладной программы.
    Вместо того чтобы ломать голову над программой, начиная с первой строки кода, программист может и должен думать о создании объектов - компонентов прикладной программы.
    Классы и объекты - два фундаментальных понятия объектно-ориентированного программирования. Класс содержит информацию о том, как объект должен выглядеть и вести себя. Другими словами, класс - это прообраз объекта. Visual FoxPro 3.0 дает возможность пользователям создавать объекты как с помощью визуальных средств, так и программно на основании базовых классов
    Для описания объекта используется набор свойств. Эти свойства объект получает из соответствующего класса, на основании которого он создан. Если нам нужен объект, имеющий свойства, отличные от свойства его класса, мы должны создать подкласс с измененными свойствами и уже его использовать для создания объекта.
    Для описаний действий, выполняемых объектом, используются методы, то есть процедуры и функции, объявленные внутри класса и непосредственно с ним связанные. Методы легко координируются с событиями, происходящими при работе программы. Главное преимущество для разработчика здесь заключается в том, что привязанные к событию методы выполняются автоматически и у нас даже есть возможность принудительно вызвать какое-то событие. Для каждого класса список событий может меняться как в сторону расширения, так и сужения; более подробная информация по этому вопросу приведена в пятой главе.
    Прикладная программа, разработанная в СУБД FoxPro, может иметь достаточно сложную структуру и включать значительное количество файлов различного типа. Основные типы файлов Visual FoxPro приведены в табл. 3.3.

Таблица 3.3. Типы основных файлов в Visual FoxPro
Тип файлаРасширение файла Расширение файла после компиляции
Пользовательское приложение, включающее в себя отдельные программные файлы -APP
База данныхDBC -
Поля примечаний в БДDCT-
Индексный файл БДDCX-
ТаблицаDBF-
ИндексIDX-
Составной индексCDX-
Поля примечаний таблицыFPT-
Текстовый файл с сообщениями об ошибках компиляцииERR-
Выполняемая программа, создаваемая на основе файла-приложения APP-EXE
Файлы макрокомандFKY-
ОтчетFRX-
Поля примечаний отчетаFRT-
ПрограммаPRGFXP
ЭтикеткаLBX-
Поля примечаний этикеткиLBT-
Поля примечаний менюMNT-
МенюMNX-
Сгенерированная программа менюMPRMPX
Файл элементов управления ActiveX-OCX
ПроектPJX-
Поля примечаний проектаPJT-
Сгенерированный файл запросаQPRQPX
ФормаSCX-
Поля примечаний формыSCT-
Текстовые файлыTXT-
Визуальная библиотека классовVCX-
Поля примечаний визуальной библиотеки классовVCT-
Файл конфигурации Visual FoxProFPW-

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

Project Manager

    Это центральный узел разработки прикладной программы, используемый для организации и управления файлами в проектах. Проект - это совокупность файлов, данных, документов и объектов FoxPro, информация о которых сохраняется в едином файле с расширением PJX. Возможности и структура Project Manager приведены на рис. 3.9.


Рис. 3.9. Возможности и структура Project Manager

    Структурные единицы в Project Manager организованы в иерархической структуре просмотра, которую пользователь может расширять или сокращать. Знак "+" появляется перед пунктом, если в проекте имеется одна или более единиц, включаемых в этот пункт. Нажимая знак "+", можно раскрыть список и увидеть его содержание. Это дает возможность очень быстро и легко обращаться ко всем файлам, связанным с проектом, без необходимости обращения к другим элементам интерфейса Visual FoxPro. Несколько проектов можно открыть одновременно, и пользователи при желании могут перетаскивать файлы из одного проекта в другой. Очень удобно свернуть Project Manager к виду, похожему на панель инструментов, перемещая его к верхней или нижней части экрана. При этом не теряется возможность работы с нужными данными в нужном месте экрана, то есть реализуется так называемый "эффект отрывания закладки", как это видно из рис. 3.10.


Рис. 3.10.

Database Designer

    Database Designer отображает все таблицы, просмотры и связи, содержащиеся в базе данных, и позволяет визуальными средствами создать Контейнер Базы данных.
    Контейнер Базы данных в Visual FoxPro 3.0 - это архив для всех связанных таблиц, локальных или внешних просмотров и соединений. Когда пользователь создает соединение с внутренними данными, оно сохраняется в Контейнере Базы данных. Если пользователь открывает Контейнер Базы данных, соединения, которые были созданы для этой базы данных, активизируются так же, как все просмотры, процедуры БД, таблицы и их связи. Когда связи установлены внутри Контейнера Базы данных, они постоянны во всей прикладной программе. Это означает, что если несколько таблиц используется для форм и отчетов, связи между таблицами создаются автоматически, основываясь на связях, созданных в Database Designer.

Form Designer

    Независимо от сложности прикладных программ для автоматизации обработки информации, почти все они требуют использования экранных форм. Таким образом, Form Designer - наиболее часто используемый инструмент в разработке прикладной программы. Три панели инструментов значительно облегчают работу. C помощью панели инструментов Layout легко выравнивать объекты, панель инструментов Form Controls позволяет быстро разместить в форме элементы управления, панель инструментов Color Palette дает возможность изменения цвета элементов формы и элементов управления. Используя окно Properties с закладками, можно также осуществлять быстрый доступ к свойствам размещенного в форме объекта. Visual FoxPro 3.0 сделал простым связывание объектов и данных с помощью Data Environment Designer. Data Environment Designer визуально представляет используемые в форме таблицы и отношения между ними и по принципу работы похож на Database Designer. Сложные формы управления данными могут быть созданы путем перетаскивания полей и элементов управления на поверхность проекта формы из окна Data Environment Designer. Form Designer тесно интегрирован с объектной моделью Visual FoxPro. Например, при проектировании формы разработчики могут сохранять группу объектов как класс прямо из Form Designer.

Visual Class Designer

    Для эффективного использования новых методов объектно-ориентированного программирования приходится довольно часто заниматься созданием и изменением таких загадочных объектов, как классы. Новые объектно-ориентированные расширения языка в Visual FoxPro дают программистам возможность создавать классы путем написания соответствующего кода. Однако поверьте, лучше доверить эту работу Visual Class Designer. С его помощью можно быстро разработать собственный класс на основе базового класса Visual FoxPro или любого ранее разработанного класса, включенного в визуальную библиотеку. Целый ряд таких библиотек вы найдете в профессиональной версии СУБД - они имеют расширение VCX. Visual Class Designer позволяет создавать свои собственные свойства и методы. Как только свойство или метод определены, они появляются в списке окна Propeties. Существенное достоинство Visual Class Designer заключается в том, что его интерфейс и методы работы сходны с Form Designer, что весьма облегчает работу с этим инструментом. Ну а если вы решили разработать невизуальный класс, устраивайтесь поудобнее за клавиатурой и начинайте пользоваться клавишей F1.

Query / View Designer

    Запросы позволяют просматривать данные из полей одной или нескольких таблиц, отвечающих установленным критериям. Как и в предыдущих версиях FoxPro, можно создать SQL-запрос с помощью Query Designer (RQBE) и сохранить его в виде кода SQL как отдельный файл с расширением QPR. Результаты запроса могут быть выведены в окно Browse, курсор, таблицу, на график, экран, в отчет или этикетку.
    View Designer имеет аналогичный интерфейс и также позволяет организовать просмотр с использованием языка SQL на основании одной или нескольких таблиц, но при этом имеется возможность вывести результаты запроса только в курсор. При желании после изменения данных в курсоре может произойти адекватное изменение данных и в исходных таблицах.
    В отличие от запроса, просмотр хранится в файле БД. Просмотр является составной частью базы данных и может выполняться для локальных таблиц или внешних данных с помощью технологии ODBC.

Connection Designer

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

Report/Label Designer

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

Menu Designer

    Позволяет визуально разрабатывать меню в стиле главного меню Visual FoxPro с последующей генерацией исходного кода в программный файл с расширением MPR. При этом разрабатываемое меню может быть использовано вместо или в дополнение к основному.

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

    Забота о пользовательском интерфейсе - пожалуй, основная "головная боль" разработчика при написании прикладной программы. Компанией Microsoft, верной своим традициям заботы о разработчиках, в Visual FoxPro были добавлены многочисленные Мастера (Wizards), которые помогают программистам создавать таблицы, формы, отчеты и запросы, а также организовывать взаимодействие с другими прикладными программами Microsoft типа Word и Excel. В табл. 3.4 приведен список Мастеров, имеющихся в Visual FoxPro.

Таблица 3.4. Мастера в Visual FoxPro
МастерОписание
TableСоздание таблиц из заранее определенных наборов или отдельных полей
QueryСоздание перекрестной таблицы (Cross Tab)
Создание диаграмм или графиков на основе MS Graph
Создание просмотров
Создание запросов
Создание просмотров для внешних данных
FormСоздание формы на основе данных из одной таблицы
Создание формы "Один ко многим"
ReportСоздание отчета с итогами и подытогами
Создание отчета "Один ко многим"
Создание отчета на основе данных из одной таблицы
LabelСоздание почтовых этикеток или карточек
Mail MergeСоздание документа Word для рассылки по адресам
Pivot TableСоздание сводных таблиц, которые могут быть помещены в форму или MS Excel
ImportИмпортирование данных в формат Visual FoxPro
FoxDocДокументирование прикладных программ
SetupСоздание инсталляционной программы для распространения прикладных программ
UpsizingПеремещение файлов данных FoxPro в файлы SQL Server

    Все Мастера доступны из пункта меню Tools, но пользоваться многими из них можно и работая в Project Manager или из других визуальных средств, где мы выбираем команду New. В то же время, результаты нашей работы в Мастерах всегда можно "отполировать" в соответствующем Конструкторе (Designer).
    Таким образом, работа с Конструкторами и Мастерами тесно увязана, и сделано это очень даже неплохо.
    Пользоваться Мастерами исключительно легко. Все они имеют единый интерфейс, четко формулируют вопросы и задачи на каждой стадии работы, а развитые возможности перетаскивания объектов (Drag and Drop) делают работу с данными быстрой и приятной. Нововведение относительно версии 2.6 - на финише добавлена кнопка предварительного просмотра, которая позволяет убедиться в правильном результате и при необходимости произвести изменения с меньшей потерей времени.
    При построении формы с помощью Мастера формы мы можем выбрать один из пяти стилей ее оформления:

  • стандартный с выделением полей цветом;
  • с выделением полей подчеркиванием;
  • с выделением полей цветом и тенью (трехмерный эффект);
  • размещение отдельных полей в рамках;
  • рельефный.

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


Рис. 3.11.

    Мастер отчетов предлагает три стиля:

  • деловой;
  • бухгалтерский (с разграфленными таблицами);
  • представительский.

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

3.3. Access

    Microsoft Access - это самая популярная сегодня настольная система управления базами данных. Ее успех можно связывать с великолепной рекламной кампанией, организованной Microsoft, или включением его в богатое окружение продуктов семейства Microsoft Office. Вполне возможно, что это так. Но корень успеха скорее всего заключается в прекрасной реализации продукта, рассчитанного как на начинающего, так и квалифицированного пользователя. Не будем сейчас вдаваться в подробности сравнения отдельных характеристик Access и его основных конкурентов, например Paradox for Windows или Lotus Approach. Эта тема прекрасно освещена в периодической компьютерной печати.
    СУБД Access 7.0 для работы с данными использует процессор баз данных Microsoft Jet 3.0, объекты доступа к данным и средство быстрого построения интерфейса - Конструктор форм. Для получения распечаток используются Конструкторы отчетов. Автоматизация рутинных операций может быть выполнена с помощью макрокоманд. На тот случай, когда не хватает функциональности визуальных средств, пользователи Access могут обратиться к созданию процедур и функций. При этом как в макрокомандах можно использовать вызовы функций, так и из кода процедур и функций можно выполнять макрокоманды.
    Несмотря на свою ориентированность на конечного пользователя, в Access присутствует язык программирования Visual Basic for Application, который позволяет создавать массивы, свои типы данных, вызывать DLL-функции, с помощью OLE Automation контролировать работу приложений, которые могут функционировать как OLE-серверы. Вы даже можете целиком создавать базы данных с помощью кодирования, когда в этом появляется необходимость.
    MS Access из всех рассматриваемых средств разработки имеет, пожалуй, самый богатый набор визуальных средств. Тем не менее кодировать в Access приходится - исходя из собственного опыта авторы берутся утверждать, что ни одно приложение, не предназначенное для себя лично, создать хотя бы без одной строчки кода невозможно.
    Для коммерческого распространения приложений, разработанных на Access, как мы уже писали, предназначен пакет Access Developer Toolkit, вместе с которым поставляются некоторые дополнения и несколько дополнительных объектов ActiveX.
    Главное качество Access, которое привлекает к нему многих пользователей, - тесная интеграция с Microsoft Office. К примеру, скопировав в буфер графический образ таблицы, открыв Microsoft Word и применив вставку из буфера, мы тут же получим в документе готовую таблицу с данными из БД.
    Вся работа с базой данных осуществляется через окно контейнера базы данных. Отсюда осуществляется доступ ко всем объектам, а именно: таблицам, запросам, формам, отчетам, макросам, модулям.
    Посредством драйверов ISAM можно получить доступ к файлам таблиц некоторых других форматов: DBASE, Paradox, Excel, текстовым файлам, FoxPro 2.х, а посредством технологии ODBC - и к файлам многих других форматов.
    Access 7.0 может выступать как в роли OLE контролера, так и OLE сервера. Это значит, что вы можете контролировать работу приложений Access из любого приложения, при условии, что оно может выступать в роли OLE контролера и наоборот.
    Встроенный SQL позволяет максимально гибко работать с данными и значительно ускоряет доступ к внешним данным.
    Пользователям, малознакомым с понятиями реляционных баз данных, Access дает возможность разделять свои сложные по структуре таблицы на несколько, связанных по ключевым полям.
    Наша книга посвящена построению систем обработки данных. Этот процесс значительно различается на разных предприятиях и фирмах в зависимости от объема данных, которые они обрабатывают. Естественно, Access - это типичная настольная база данных. В то же время на небольшом предприятии с количеством компьюторов не больше 10, ресурсов Access вполне может хватить для обслуживания всего делопроизводства, естественно, в связке с Microsoft Office. То есть все пользователи могут обращаться к одной базе данных, установленной на одной рабочей станции, которая не обязательно должна быть выделенным сервером. Для того чтобы не возникали проблемы сохранности и доступа к данным, имеет смысл воспользоваться средствами защиты, которые предоставляет Access. При этом вы можете воспользоваться Мастером, если не уверены, что сами правильно установите права и ограничения для пользователей.
    В отличие от других рассматриваемых средств разработки, СУБД Access имеет русифицированный интерфейс и частично переведенный на русский язык файл контекстной помощи. Как мы уже отмечали, причина этого отрадного факта заключена в позиционировании этой СУБД на конечного пользователя. Мы опустим описание интерфейса Access, так как его понимание облегчено не только русским языком, но и сохранением общего подхода, принятого в построении интерфейса всех продуктов Microsoft для Windows.
    При создании многих объектов и элементов управления в Access предоставляется несколько возможностей реализации поставленной задачи. Как правило, большая часть объектов создается визуально, путем нажатия кнопки Создать. При этом необходимо находиться в контейнере базы данных на той вкладке, объекты которой вас интересуют. В качестве альтернативы можно воспользоваться меню Вставка и выбрать в нем соответствующий объект.
    Очевидно, практическая работа в СУБД начинается с создания базы данных. Уже при запуске Access перед вами появляется диалоговое окно, которое предлагает создать новую базу или открыть ранее созданную, вдобавок имеется список баз данных, с которыми вы работали недавно. Если вы выберете опцию Запуск Мастера, то попадете в окно Создание. Теперь для создания базы данных можно использовать шаблоны. Для того чтобы увидеть их список, вам необходимо перейти на вкладку Базы Данных. Достаточно выбрать ту базу данных, которая необходима для создания вашего приложения. При этом можно добавить в базу данных только те таблицы, которые необходимы, а в таблицах выбрать нужные вам поля. После этого вы получаете базу данных с таблицами, формами ввода и вывода. Окно контейнера базы данных показано на рис. 3.12. В табл. 3.5 приведен список Мастеров, имеющихся в Access.


Рис. 3.12. Контейнер базы данных в Access
Таблица 3.5. Мастера в СУБД Access 7.0
Мастер баз данныхСоздаются базы данных из определенного списка, возможен выбор необходимых таблиц и полей, создаются формы и отчеты.
Мастер таблицСоздает таблицы из списка уже готовых, которые можно изменить. Интересен только на начальном этапе использования таблиц, хотя определенный круг задач можно решить, применяя только таблицы, предоставляемые мастером.
Мастер простых форм Создает простую форму,, в которую выводятся выбранные пользователем поля из таблицы или запросы.
Мастер форм с диаграммойСоздает форму с диаграммой, отражающей данные для полей из таблиц и запросов, которые служат источником данных для формы.
Мастер форм со сводной таблицей Microsoft ExcelСоздает форму, в которую включен объект "страница Excel" со сводной таблицей.
Мастер построения кнопокСоздает кнопки в форме или отчете с выбранными вами свойствами и функциональностью.
Мастер построения группСоздает группу переключателей, которая может содержать множество кнопок, флажков, выключателей.
Мастер построения списковСоздает списки на основе полей из таблиц и запросов, SQL выражений или предопределенного набора значений.
Мастер построения комбинированных списковСоздает комбинированные списки на основе полей из таблиц и запросов, SQL выражений или заранее предопределенного набора значений.
Мастер построения подчиненных формСоздает подчиненную форму, которая может служить аналогом объектов Grid или Browse в других системах управления данными.
Мастер создания отчетаСоздает отчет, в который выводятся выбранные пользователем поля из таблицы или запросы, с возможностями установки группировки и сортировки.
Мастер создания наклеекПозволяет создавать наклейки как стандартных, так и иных размеров.
Мастер создания отчетов с диаграммойПозволяет выводить на печать диаграммы, внешний вид которых зависит от данных в таблице или запросе, являющихся источником данных для отчета

    Дополнительно к перечисленным возможностям, все созданные формы вы можете редактировать с помощью вспомогательных диалоговых окон. При первом знакомстве с Access такой способ создания баз данных поможет больше, чем сотни страниц документации.
    В процессе изучения Access необходимо как можно чаще обращаться к команде Параметры из меню Сервис. После выбора этого пункта на экран выводится диалоговое окно со множеством вкладок. В настоящий момент нас интересует вкладка с заголовком Общие (по-видимому, имеются в виду параметры), которая представлена на рис. 3.13. На этой странице в текстовое поле с заголовком Рабочий каталог внесите путь к той папке, в которой вы собираетесь хранить ваши файлы. Если при программном способе создания баз данных вам необходим каталог, отличный от текущего рабочего, то указывайте полный путь для создаваемого файла.


Рис. 3.13.

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

Таблица 3.6. Способы создания таблиц в СУБД Access
Способ созданияОписание
Режим таблицыПервоначально вам предоставляется таблица с тридцатью полями, куда необходимо ввести данные. После ее сохранения Access сам решает, какой тип данных присвоить каждому полю. Трудно представить человека, хоть раз в жизни создававшего таблицы и понимающего,, что такое типы данных, который пользуется данной возможностью. Как недостаток этого способа следует отметить невозможность создать таблицу с полями примечаний.
Конструктор таблицПосле выбора этой опции открывается Конструктор таблиц, в котором вам необходимо самостоятельно создавать поля, выбирать типы данных для полей, размеры полей и, если это необходимо, устанавливать свойства полей. Подробно работа с Конструктором таблиц описана в главе 6.
Мастер таблицИз предопределенного набора таблиц вы можете создать таблицу по своему вкусу. Возможно, что некоторые таблицы целиком подойдут для вашего приложения, не стесняйтесь,, используйте их, все средства хороши для того, чтобы побыстрее завершить проект (рис. 3.14).
Импорт таблицПозволяет импортировать данные из таблиц других приложений в базу данных. Новые таблицы теряют непосредственную связь с другими приложениями. В появившемся диалоговом окне вам необходимо выбрать тип файла и имя импортируемого файла. Тип ODBC позволяет импортировать данные практически любого формата, подробнее об ODBC см. в главе 8.
Связь с таблицамиОчень похоже на предыдущий пункт, но при этом таблица остается в своем формате, то есть может использоваться несколькими приложениями.

Рис. 3.14.

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


Рис. 3.15.

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

Запросы

    Система построения запросов в Access не имеет себе равных среди СУБД массового использования. Нетрудно поверить, что какая-нибудь третья фирма построила очень дружественный по интерфейсу и необыкновенно удачный продукт, который легко позволяет строить запросы самому ленивому и мало-опытному пользователю. Но кто о ней знает? Количество пользователей этого гипотетически прекрасного продукта исчерпывается первыми тысячами, возможно, в США на порядок больше. Пользователей Access и приложений, построенных на его основе, - десятки миллионов. Практически все типы запросов, которые можно построить программно, в Access можно создать визуально. Исключение составляют сквозные запросы (SQL pass-through), запросы на изменение структуры данных (DDL) и запросы объединения.
    В Access вам предоставляется возможность создавать самые разнообразные запросы выборки, причем подчеркиваем, что они модифицируют исходные данные. А ведь эта возможность реализована далеко не в каждом пакете. Можно сказать, что Access был одним из пионеров практического применения запросов, изменяющих данные в таблицах, на основе которых они построены. Именно здесь кроются резервы ускорения работы с данными. Это очень важно, так как у оппонентов Access любимая тема для разговоров - обсуждение резкого замедления скорости работы с данными у Access при увеличении размеров таблиц.
    Мы уже не будем говорить про развитую систему фильтров. Microsoft слишком занят глобальными проблемами завоевания Internet, и ему некогда обращать внимание оппонентов (и просто заклятых врагов) на такую мелочь. О том, насколько ускоряется работа при наличие индексов, предоставляем вам сделать выводы самостоятельно сразу же после прочтения этой книги и проведения соответствующих экспериментов.
    Также визуально вы можете построить запросы добавления, удаления, обновления, создания таблиц. Причем таблицу можно создать в другой базе данных. Обратим ваше внимание на перекрестный запрос. Пять-десять минут, которые вы потратите на его освоение, в дальнейшем сэкономят недели работы.
    Сквозные запросы делают вас поистине всесильным разработчиком. Вы можете контролировать работу любого сервера баз данных, находясь в любимой среде Access. Правда, предварительно необходимо запросить у Администратора сети те же права, которые имеются у него.
    Запросы изменения структуры данных, позволяющие вам создавать новые таблицы и индексы, а также изменять структуру существующих таблиц, авторы нашли очень полезными при работе с базами данных Access из других приложений, например из Visual FoxPro или Excel, используя сквозные запросы оттуда. Другая причина, которая может побудить вас использовать их, - нежелание разбираться с синтаксисом объектов DAO, так как они обладают такой же функциональностью.
    Для построения запросов воспользуйтесь одним из уже известных вам способов создания новых объектов. В появившемся диалоге Новый запрос будет предложено выбрать из способов построения запросов. Правда, последние три Мастера строят запросы со специфическими характеристиками, необходимыми для особо сложных случаев, которые, возможно, не понадобятся в первый день знакомства с Access, но наверняка пригодятся в дальнейшем. Если вы мало знакомы с построением запросов, то вначале попробуйте использовать Мастер, который называется Простой запрос. Затем откройте этот же запрос в режиме Конструктора. Как мы уже говорили, вы легко можете переходить из одного режима в другой. Для запросов доступны три режима: Конструктор, показанный на рис. 3.16, SQL - на рис. 3.17 и Таблица - на рис. 3.18. Режим Конструктора и SQL взаимосвязаны, любые изменения в одном из режимов приводят к изменениям в другом. Опять же следует отметить, что не каждая среда создания баз данных может предоставить вам такую возможность. Обычно вам любезно предоставляют возможность посмотреть код полученного SQL-запроса в режиме только для чтения. Настоятельно советуем как можно чаще переключаться в режим SQL, что поможет вам быстрее освоить синтаксис SQL. Чем лучше вы освоите SQL, тем легче будет в дальнейшем. Как ни хороши были бы визуальные средства построения запросов, иногда легче набрать несколько операторов вручную. При переходе в режим Таблицы вы увидите результаты вашего запроса. Microsoft постарался, чтобы вы не только пользовались запросами, но и активно осваивали их.
    Как указывалось выше, фильтры - это одна из наиболее сильных сторон Access. Фильтры строятся с помощью запросов или установкой критериев. Но очень сложно построить запросы на все случаи жизни. Для того чтобы хоть как-то облегчить эту задачу, используются параметрические запросы. Создав параметрический запрос, вы даете возможность пользователю вводить значения для отбора данных - перед ним после запуска запроса обязательно возникнет диалоговое окно с просьбой указать критерии отбора, как это показано на рис. 3.19.


Рис. 3.19.

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

Формы

    После создания таблиц и запросов можно организовать ввод данных с помощью формы. Иногда пользователи предпочитают работать с данными, выведенными в виде таблицы, которая напоминает им одну из рабочих книг. Но часто бывает удобнее организовать данные в виде формы ввода, когда видно только одну запись, поля которой расположены в нужном порядке. При этом вы можете в полной мере проявить здесь свои способности к дизайнерскому искусству, если таковые имеются.
    При желании создать простейшую форму воспользуйтесь опцией автоформа. Это самый простой способ создания формы. Вы получаете форму с набором текстовых полей, перед которыми выводятся названия или заголовки полей, если последние имеются для поля, как это видно на рис. 3.20. В дальнейшем, по мере освоения пакета, вы сможете использовать эту возможность для создания основы вашей формы с целью дальнейшего ее усовершенствования.
    Для создания автоформы воспользуйтесь раскрывающимся списком Новые объекты на панели инструментов, которая показана на рис. 3.21, либо используйте команду меню Вставка. Если вы решите создавать новую форму, воспользовавшись кнопкой Создать на вкладке Формы, то в списке доступных режимов создания будут присутствовать автоформы, причем трех типов: состоящая из колонок (ее вы можете построить предыдущим способом), ленточная и табличная. Последняя совпадает с обычным табличным режимом вывода данных для таблицы, но это все-таки форма, потому что вы легко можете устанавливать выводимые поля, что очень трудно сделать для таблиц.


Рис. 3.21.

    После того как вы решите создать форму, перед вами появится диалоговое окно Новая форма, показанное на рис. 3.22, в котором имеется целых семь опций. Обращаем ваше внимание, что надо выбрать источник данных, в противном случае для вывода данных надо применять более сложные технологии. Можете выбрать любой способ, но следует отметить, что на самом деле это не семь способов создания форм.
    К примеру, опция Простая форма, которая запускает Мастер создания форм, по своим возможностям раскладывается на три следующие за ними автоформы, но с предоставлением возможности выбрать из исходных таблиц нужные вам поля, задать свой заголовок, выбрать один из стилей оформления.
    Основные этапы построения формы с помощью Мастера показаны на рис. 3.23- 3.27.


Рис. 3.23.

Рис. 3.24.

Рис. 3.25.

Рис. 3.26. Выбор названия формы и дальнейших действий по ее использованию

Рис. 3.27. Готовая форма

    Последние опции - Сводная таблица и Диаграмма - позволяют создавать достаточно специализированные по своим задачам формы и активно используют OLE технологии. Новичкам рекомендуется начинать с автоформ, потом, осознав различия между различными видами форм и желая применить более высокие требования к выводу данных, попробовать опцию Простая форма. Иногда бывает полезно представить данные, организованные с помощью опций Диа-грамма и Сводная таблица.
    Формы, которые удовлетворят любому, даже самому требовательному вкусу, можно создать с помощью Конструктора форм. Эффективным способом работы является быстрый выбор полей с помощью Мастера создания форм, стиля форм и дальнейшее совершенствование форм с помощью Конструктора.
    Создание форм отнимает больше половины времени, затрачиваемого на создание приложений. Но именно на этом этапе работы вы можете воспользоваться наибольшим количеством средств автоматизации. Вам предоставляется большое количество встроенных объектов. Со многими объектами связаны Построители, причем число их разновидностей так велико, что позволяет построить автоматизировано 90%, а в некоторых случаях и целиком приложение. К примеру, с помощью Построителя командных кнопок вы можете создать 28 различных кнопок, функции которых простираются от перехода по записям до набора телефонного номера (рис. 3.28).


Рис. 3.28.

    Помимо кнопок Мастера имеются для Групп, причем вы сами можете решить, какие объекты поместить внутрь контейнера группы, для списков, комбинированных списков, подчиненных форм, которые можно считать в Access аналогом объекта Grid, используемым в Visual FoxPro.
    Каждый объект имеет большой набор свойств и событий. Событию можно присвоить макрокоманду или процедуру, которые будут вызываться при его наступлении. С помощью этого можно добиться значительной гибкости работы с формой.
    Для форм доступны три режима работы: Конструктор, Форма и Таблица. Режим вывода данных имеет три вида: ленточная форма, простая форма и таблица. При работе с простой формой одновременно вы можете видеть данные только из одной записи, при ленточной - одну и более, в зависимости от того, сколько можно уместить их на экран.
    В Access нет объекта типа страницы с закладками, но есть объект Разделитель страниц и метод для перехода со страницы на страницу, поэтому не трудно организовать многостраничную форму, правда, эта функциональность может быть достигнута только после написания нескольких процедур.
    При работе с формой загружается своя система меню, в режиме Конструктора - одна, а в режиме формы - другая. То же относится и к панели инструментов. В режиме формы вы можете указать, какое меню и панель инструментов должны загружаться, при этом можно указывать и созданные вами.
    Используя установки, которые вам доступны после выбора команды Параметры из меню Сервис, вы можете задать шаблон формы, в качестве которого может использоваться любая заранее созданная форма. Все новые формы будут создаваться на основе этой формы со всеми включенными в нее элементами управления и свойствами.
    Формы и элементы управления можно создавать и модифицировать программно, но занимает это намного больше времени.

Отчеты

    Отчеты наряду с формами создают представление о вашем приложении, и создание их обычно требует кропотливого труда. Компания Microsoft постаралась ваш труд облегчить. Для каждой таблицы вы можете создать Автоотчет. При этом Автоотчет, доступный для создания с помощью меню или кнопки Новый объект на панели инструментов База данных, создает отчет, данные в котором будут выведены в столбец. Еще один Автоотчет станет доступным при выборе кнопки Создать на вкладке Отчеты. Это ленточный автоотчет, когда данные из всех полей будут выводиться в колонку. Если вы хотите выбрать поля для отчета, а не выводить все, имеющиеся в таблице или запросе, то воспользуйтесь Мастером отчетов. Мастер отчетов позволяет, помимо выбора полей для отчета, сгруппировать данные по какому-нибудь полю, при этом вы можете установить интервал группировки, установить порядок сортировки, выбрать макет отчета и его стиль.
    Среди прочих мастеров отметим Мастер по созданию отчета с диаграммой и построитель почтовых наклеек. Построитель почтовых наклеек - это мощное средство с разнообразными свойствами, требующее подробного изучения. Построитель почтовых наклеек по своему классу скорее можно отнести к средствам визуального проектирования.
    Для построения сложных отчетов предназначен Конструктор отчетов. При его запуске вместе с ним загружается панель инструментов с элементами управления, которые можно размещать в различных областях проектируемого отчета путем буксировки с помощью мыши. Перед печатью отчета его можно просмотреть в окне предварительного просмотра.
    Как и многие другие объекты базы данных, отчеты можно создавать программно. Обычно этот метод используется для создания собственных Мастеров.

Макросы

    Макрокоманды, которые можно объединять в макросы, совершают разнообразные действия, выполнимые в СУБД Access, а с помощью параметров этим действиям можно придать гибкость, которой иначе можно добиться только путем кропотливого программирования. В Access имеется около пятидесяти макрокоманд. Для того чтобы создать макрос, вам обязательно нужно загрузить окно Конструктора макросов, которое состоит из двух частей (рис. 3.29). Верхняя служит для ввода макрокоманд и представляет собой таблицу, имеющую от двух до четырех колонок, в зависимости от установленных параметров. В нижней части окна Конструктора макросов вводятся аргументы макроса. В зависимости от выбранной макрокоманды число аргументов динамически меняется. Напротив каждого аргумента имеется его описание. Справа отображается пояснение для рода и типа требуемого аргумента. Очень часто аргумент можно выбрать из раскрывающегося списка.


Рис. 3.29.

    Для построения более сложных макросов, требующих выполнения определенных условий для запуска отдельных макрокоманд, необходимо добавить колонку Условия. После этого макрокоманды, находящиеся в одной строке с условием, будут выполняться, только если выражение условия будет истинным. Для того чтобы распространить действие условия на последующие строки, достаточно ввести многоточие (...) в колонке условия напротив соответствующих макрокоманд.
    С помощью Конструктора макросов можно создавать и меню, но все-таки более удобным средством является непосредственно Конструктор меню.

Система защиты

    Access обладает лучшей встроенной системой защиты среди всех настольных приложений СУБД. Вы можете создавать группы, пользователей, присваивать права доступа ко всем объектам, в том числе и модулям. Кстати, это решает вопрос закрытия ваших процедур и функций от чужих глаз. Так как для Access нет компилятора, то необходимость защиты становится очень актуальной для разработчиков. Система защиты доступна только при открытой базе данных. Каждому пользователю можно предоставить индивидуальный пароль. Система защиты доступна как с помощью визуальных средств, так и программным путем. Если вы хотите защитить вашу базу данных даже от пользователя с именем Admin, то пользуйтесь услугами надстройки Security, которая поставляется вместе с Access Developer Toolkit. Помимо этого вы можете закрыть вашу базу данных от просмотра внешними программами.

3.4. Visual Basic

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


Рис. 3.30. Интерфейс Visual Basic 4.0

    При запуске Visual Basic вы сразу попадаете в режим разработки и по умолчанию открывается новый проект с готовой к созданию формой. Опишем кратко назначение команд в главном меню Visual Basic. Меню File является достаточно стандартным для всех средств разработки Microsoft и содержит команды, предназначенные для работы с файлами:

  • New Project - создание нового проекта. В Visual Basic 4.0 одновременно можно работать только с одним проектом. Если вы очень хотите работать сразу с несколькими проектами - запустите еще одну копию Visual Basic.
  • Open Project - открытие существующего проекта.
  • Save File - сохранение файла формы или программного модуля.
  • Save File As - сохранение файла формы или программного модуля с другим именем.
  • Save Project - сохранение файлов проекта.
  • Save Project As - сохранение файлов проекта с другим именем.
  • Add File - добавление в проект уже существующего файла формы, программного модуля, класса или ресурса.
  • Remove File - удаление из проекта уже существующего файла формы, программного модуля, класса или ресурса.
  • Print Setup - вызов диалогового окна установки принтера.
  • Print - печать файлов проекта.
  • Make EXE File - создание (компиляция) из файлов проекта исполняемого модуля в виде файла EXE.
  • Make OLE DLL File - создание (компиляция) из файлов проекта динамической библиотеки Windows в виде файла DLL.

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

  • Procedure Definition - позволяет быстро переместиться к коду вызываемой процедуры, если курсор находится на ее имени.
  • Last Position - обеспечивает перемещение курсора в точку последнего изменения программного кода. Поддерживается до четырех "возвратов". Меню Insert предназначено для вставки в проект новых компонентов (процедуры, формы, модуля класса и т. п.). Меню Run служит для выполнения программы:
  • Start - запускает программу на выполнение.
  • Start With Full Compile - запускает программу на выполнение с предварительной перекомпиляцией всех файлов проекта.
  • End - прерывает выполнение программы в случае неверного результата.
  • Restart - возобновляет прерванную работу программы.
  • Step Into - показывает выполнение последовательно всех строк кода.
  • Step Over - показывает выполнение кода только данной процедуры.
  • Step To Cursor - выполняет без вывода на экран часть кода до строки, на которой находится курсор.
  • Toggle Breakepoint - устанавливает или снимает точку, в которой выполнение программы прерывается.
  • Clear All Breakepoints - снимает все точки прерывания работы программы.
  • Set Next Statement - устанавливает строку в программном коде, которая будет выполняться следующей.
  • Show Next Statement - устанавливает курсор на строку, которая будет выполняться следующей.

    Меню Tools включает доступ к дополнительным средствам разработчика:

  • Add Watch - позволяет показать значение переменной в окне отладчика во время выполнения программы.
  • Edit Watch - позволяет редактировать значение переменной во время выполнения программы.
  • Instant Watch - позволяет вывести значение переменной, которое она имеет в данный момент.
  • Calls - представляет список всех незавершенных процедур.
  • Menu Editor - вызывает утилиту построения пользовательского меню.
  • Custom Controls - подключает к проекту дополнительные компоненты VBX и ActiveX.
  • References - позволяет установить ссылку на внешние объекты.
  • Get - копирует версию проекта из программы контроля версий и управления групповой разработкой проекта (MS Visual SourceSafe 4.0) в рабочую папку с атрибутом только для чтения.
  • Check Out - копирует выделенные файлы проекта из программы контроля версий в рабочую папку с атрибутом чтение/запись.
  • Check In - обновляет версию проекта в программе контроля версий.
  • Undo Check Out - прерывает команду Check Out, отменяя все сделанные изменения.
  • Options - выводит на экран диалоговое окно настройки параметров среды разработки.

    Меню Add-In служит для расширения среды разработчика. Стандартно в него входят команды для вызова:

  • Data Mananger - утилита для интерактивной работы с данными.
  • Add-In Manager - включение дополнительных средств разработчика.

    Меню Help предназначено для вызова контекстной помощи и справочной информации о Visual Basic.


    В приложении Visual Basic могут присутствовать файлы, типы которых приведены в табл. 3.7.

Таблица 3.7. Типы основных файлов в Visual Basic
Тип файлаРасширение файла
Пользовательское приложение, включающее в себя все необходимые компонентыEXE
База данныхMDB
ОтчетRPT
Готовые компоненты и элементы управления OLE (ActiveX)OCX (VBX)
ПроектVBP
ФормаFRM
Двоичный код для формыFRX
ПрограммаBAS
Файл ресурсовRES
Модуль классовCLS

    Основные возможности Visual Basic, применимые в разработке приложений для обработки информации, могут быть реализованы благодаря наличию в нем объектов для доступа к данным - Data Access Object (DAO), 32-разрядного процессора данных - JET 3.0 и предназначенных специально для работы с данными элементов управления.
    Процессор данных в Visual Basic поддерживает все стандартные операции по созданию, изменению и удалению таблиц, индексов и запросов. Формат БД процессора данных Visual Basic соответствует формату Access. JET 3.0 также обеспечивает поддержку целостности и проверку вводимых и изменяемых данных на уровне полей и записей. Для изменения данных JET 3.0 позволяет использовать язык SQL, который, правда, не соответствует на 100 процентов стандарту ANSI.
    Управление базой данных обеспечивается процессором данных с помощью объектов для доступа к данным. Эти объекты позволяют разработчику программным путем, с помощью соответствующих свойств и методов DAO, как манипулировать данными, так и управлять структурой БД, включая ее создание. По сравнению с предыдущей версией Visual Basic возможности объектов для доступа к данным теперь существенно расширены. Вы можете использовать для работы с данными несколько рабочих областей, поддерживать целостность данных, включая каскадное удаление и обновление, и обеспечивать их защиту от несанкционированного доступа. Существенно сократить программный код позволяет использование коллекций.
    Уникальным свойством JET 3.0 является возможность создания копий данных (репликации БД). Для создания копии БД разработчику достаточно воспользоваться методом MakeReplica. При задании метода Synchronize выполняется согласование данных в обновляемой и оригинальной БД. Причем эти операции могут выполняться как с файлами формата БД процессора данных, так и с БД других форматов, поддерживаемых через ODBC.
    Нельзя не отметить, что JET 3.0 использует индексы новой, более компактной структуры, позволяющие уменьшить время их создания и ускорить процесс поиска данных.
    В Visual Basic Enterprice Edition включены объекты для доступа к внешним данным - Remote Data Object (RDO) и соответствующие элементы управления - Remote Data Control (RDC). Это позволяет, не прибегая к помощи процессора данных JET 3.0, использовать все возможности работы с курсорами на сервере, достигая максимально возможной скорости доступа к данным и минимизируя сетевой трафик.

3.5. MS SQL Server

    Microsoft SQL Server 6.5 - одна из наиболее мощных СУБД архитектуры клиент-сервер. Эта СУБД позволяет удовлетворять такие требования, предъявляемые к системам распределенной обработки данных, как тиражирование данных, параллельная обработка, поддержка больших баз данных на относительно недорогих аппаратных платформах при сохранении простоты управления и использования.
    MS SQL Server представляет собой систему, конечно, плохо сравнимую с рассмотренными выше СУБД. Он не предназначен непосредственно для разработки пользовательских приложений, а выполняет функции управления базой данных. Для пользовательского приложения SQL Server является мощным источником генерации и управления нужными данными.
    Сервер имеет средства удаленного администрирования и управления операциями, организованные на базе объектно-ориентированной распределенной среды управления. Microsoft SQL Server 6.5 входит в состав семейства Microsoft BackOffice, объединяющего пять серверных приложений, разработанных для совместного функционирования в качестве интегрированной системы.
    Microsoft SQL Server 6.5 предназначен исключительно для поддержки систем, работающих в среде клиент-сервер. Он поддерживает широкий спектр средств разработки и максимально прост в интеграции с приложениями, работающими на ПК.
    Построенная на основе технологических решений, появившихся в Microsoft SQL Server 6.0, версия 6.5 демонстрирует много значительных нововведений. SQL Server 6.5 превосходит предыдущую версию с точки зрения использования многопоточной параллельной архитектуры операционной системы для повышения производительности и масштабируемости, то есть очень эффективно использует возможность ускорения работы в том случае, если на компьютере установлено несколько процессоров.
    SQL Server 6.5 имеет новую масштабируемую архитектуру блокировок, называемую Динамической блокировкой (Dinamic Locking), которая комбинирует блокировку на уровне страницы и записи для достижения максимальной производительности и подключения максимального числа пользователей.
    SQL Server может тиражировать информацию в БД иных форматов, включая Oracle, IBM DB2, Sybase, Microsoft Access и другие СУБД (при наличии ODBC драйвера, отвечающего определенным требованиям).
    Хранимые процедуры, поддерживающие OLE Automation, позволяют разработчику применять практически любой инструмент из тех, что поддерживают OLE, в целях создания хранимых процедур для SQL Server. Visual Basic 4.0 поддерживается посредством новой 32-разрядной DB-Library (OCX). Многочисленные расширения языка Transact-SQL включают расширенную поддержку курсоров, возможность использования команд определения данных внутри транзакций и т. д.
    Microsoft SQL Server 6.5 содержит Ассистент администратора. Этот инструмент позволяет назначать основные процедуры сопровождения базы данных и определять для них график выполнения. Операции по сопровождению баз данных включают проверку распределения страниц, целостности указателей в таблицах (включая системные) и индексах, обновление информации, необходимой оптимизатору, реорганизацию страниц в таблицах и индексах, создание страховочных копий таблиц и журналов транзакций. Все эти операции могут быть установлены для автоматического выполнения по заданному администратором графику.
    Пакет Enterprise Manager включает утилиту, позволяющую переносить некоторые или все объекты из одной базы данных в другую. Используя эту утилиту, разработчик или администратор может:

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

    Сервер, который получает объекты, должен быть Microsoft SQL Server версии 6.5. Сервер-источник может быть Microsoft SQL Server версии 4.x или 6.x или сервер Sybase.
    SQL Server предоставляет возможность создания страховочных копий и восстановления индивидуальных таблиц. Загрузка таблицы может быть выполнена либо из копии индивидуальной таблицы, либо из копии базы данных. Загрузка индивидуальных таблиц может оказаться хорошим решением при необходимости восстановления данных после сбоя, когда загрузка всей базы данных неэффективна. Тем не менее создание страховочных копий всей базы данных и журнала транзакций остаются основой стратегии резервного копирования.
    Для эффективной работы с данными SQL Server имеет целый набор специальных инструментов (рис. 3.31). Характеристика основных из них приведена в табл. 3.7.


Рис. 3.31.
Таблица 3.7. Характеристика основного инструментария SQL Server 6.5
Графический инструментОписание
SQL SetupИспользуется для установки нового, модификации установленного программного обеспечения и удаления SQL Server с диска. Программа Setup также может быть использована для изменения опций сетевой поддержки, подключения языка, перестройки БД Master и установки опций доступа к данным.
SQL Service ManagerИспользуется для старта и остановки служб SQL Server (SQL Server и SQL Executive).
ISQL/wПозволяет вводить выражения и хранимые процедуры Transact-SQL в графическом интерфейсе запросов.
SQL Security ManagerПозволяет управлять бюджетами пользователей серверов SQL.
SQL Enterprise ManagerОбеспечивает управление с сервера или с рабочей станции. Он позволяет вам выполнять задачу системного администрирования, используя удобный графический интерфейс.
SQL Client Configuration UtilityУстанавливает информацию соединения сервера для клиентов.
SQL Transfer ManagerОбеспечивает легкий графический способ переноса объектов и данных с одного сервера на другой.
SQL TraceГрафическая утилита, позволяющая администраторам и разработчикам отслеживать и фиксировать активность клиентских приложений, обращающихся к Microsoft SQL Server 6.5. SQL Trace может в реальном времени отображать все аспекты обращений к серверу или использовать фильтры, отображающие информацию о действиях конкретных пользователей, приложений или машин.

3.6. Руководство для покупателя

    Жизнь не стоит на месте и сейчас трудно себе представить, что каких-то десять лет назад в существовавшем еще тогда СССР невозможно было купить легальную копию такой популярной СУБД, как FoxPro. Сей факт, конечно, способствовал выработке стойкого отсутствия интереса программиста к вопросу: "Что такое легальная копия?" Но возрастающая сложность программного обеспечения и разрабатываемых с его помощью систем заставляет нас, несмотря на массу различных проблем (связанных, в основном, с необходимостью заплатить), решительно повернуться в сторону легального пакета программ. Этот вариант гарантирует получение программ из надежного источника, в полном комплекте и с обширной документацией. Как ни странно может показаться на первый взгляд, наиболее популярный вопрос потенциального покупателя: "А что, собственно я могу купить?" Давайте посвятим ответу на этот вопрос несколько страниц нашей книги.
    Средства разработки, о которых идет речь в данной книге, поставляются для розничной продажи в нескольких вариантах комплектации. Начнем с Visual FoxPro. В соответствии с общей политикой фирмы-производителя пакета Visual FoxPro - Корпорации Microsoft, программное обеспечение для разработчиков поставляется в двух вариантах:

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

    Более подробно различия между этими двумя версиями представлены в табл. 3.8.

Таблица 3.8. Набор средств разработки программ в стандартной (C) и профессиональной (П) версиях Visual FoxPro
Средства разработки и наличие компонентов СУБДСП
Возможности для разработки программного обеспечения
Визуальные средства разработки+ ++
Возможность создания собственных классов и подклассов, включая наследование, инкапсуляцию и полиморфизм +++
Наличие визуального отладчика прикладных программ+++
Возможность работы в операционных системах Windows 3.1n, Windows NT и Windows 95+ ++
Наличие большого набора элементов управления, позволяющих создать удобный пользовательский интерфейс +++
Возможность распространять прикладные программы, разработанные программистом для последующего использования в операционных системах Windows 3.1, Windows NT и Windows 95 +
Наличие Мастера установки (Setup Wizard),, позволяющего создать набор дистрибутивных дискет для распространения пользовательского приложения+
Наличие Class Browser - средства работы с классами+
Возможность создания независимого запускаемого модуля пользовательского приложения в виде EXE-файла и его свободное распространение+
Наличие дополнительных элементов управления OLE, которые могут быть использованы при разработке прикладной программы+
Полное руководство программиста по Win32 API, позволяющее использовать стандартный набор и дополнительные DLL-функции (только на CD-ROM)+
Доступ к данным и поддержка технологии клиент-сервер
Встроенная поддержка реализации технологии "клиент-сервер" с наиболее популярными серверами баз данных, такими, как Microsoft SQL Server, ORACLE 6 и ORACLE 7, с помощью 32-битных драйверов ODBC версии 2.0+ ++
Наличие визуальных средств проектирования базы данных, локальных и внешних просмотров+++
Наличие Мастера создания таблиц в формате Microsoft SQL Server на основе данных в формате Visual FoxPro (Upsizing Wizard)+
Поддержка технологии OLE 2.0
Наличие элементов управления OLE Container, позволяющих во время работы программы использовать в ней компоненты OLE+++
Поддержка OLE Automation, которая позволяет управлять другими приложениями из Visual FoxPro+++
Поддержка редактирования на месте OLE-объектов, встроенных в Visual FoxPro без необходимости перехода в другое приложение+++
Программы, документация и дополнительные средства разработчика++
Возможность использования внешних API библиотек+
Возможность разработки приложений, поддерживающих различные кодовые страницы для работы с данными,, хранящимися на различных языках+
Наличие компилятора графических файлов контекстной помощи+
Наличие программы GENDBC.PRG для генерации программы, которая может перестроить базу данных+
Наличие более сотни файлов изображений и курсоров для использования в прикладной программе+
Наличие средства создания и редактирования изображений, иконок и курсоров Imagedit+
Наличие документации Developers Guide, Installation Guide, Quick Reference Guide и Users Guide+++
Наличие документации Language Reference и Professional Features Guide+

    Почти сразу после выхода Visual FoxPro появилась и локализованная версия, в составе которой поставляется документация и файл контекстной справки на русском языке. Для максимально быстрого освоения новых приемов разработки пользовательского приложения программист может воспользоваться специальным пакетом - Mastering Microsoft Visual FoxPro 3.0, который содержит CD-ROM с интерактивной мультимедийной системой обучения на английском языке. Этот пакет содержит пояснительный текст, видеофрагменты и аудиокомментарий и предназначен для достаточно опытных програмистов. Он охватывает следующие темы:

  • Проектирование приложения, баз данных и таблиц.
  • Объектная модель Visual FoxPro.
  • Использование визуальных классов.
  • Разработка форм, отчетов, запросов и представлений.
  • Использование OLE и OLE Automation.
  • Разработка приложений в архитектуре "клиент-сервер".
  • Обработка ошибок и отладка пользовательского приложения.
  • Особенности разработки приложения для работы в локальной сети.
  • Создание меню и панелей инструментов.
  • Работа с Project Manager, преобразование программ, разработанных на FoxPro 2.x в версию 3.0, словарь данных.
  • Использование динамических библиотек Windows.
  • Мастера и построители.

    СУБД Access может быть приобретена как отдельный пакет, так и в составе пакета MS Office for Windows 95 Professional. Существует полностью локализованная версия Access, в которой, помимо документации и значительной части контексной помощи, на русский язык переведен весь интерфейс. Русской версией Access, конечно, комплектуется и профессиональная русская версия MS Office.
    В составе MS Office for Windows 95 Professional кроме СУБД Access вы получите следующие хорошо интегрированные с ней пакеты:

  • MS Excel - мощный пакет электронных таблиц для выполнения динамических расчетов и графического представления данных.
  • MS Word - один из наиболее популярных для среды Windows текстовых процессоров с очень широкими возможностями.
  • Power Point - программа для подготовки презентаций.
  • Sheduler Plus - индивидуальный электронный планировщик и записная книжка.

    Замечательным свойством всех пакетов, входящих в состав MS Office, является не только поддержка технологий OLE 2.0 и ODBC, но и предоставляемая программисту возможность использования общего языка программирования - Visual Basic for Application.
    Для профессиональных разработчиков предназначен пакет Access Developer's Toolkit 95, позволяющий распространять разработанное приложение для поль-зователей и включающий следующие компоненты:

  • Библиотека для работы с базами данных Access.
  • Инструментарий для управления репликациями, включающий планировщик и поддержку исключительных соединений.
  • Более 10 новых 32-разрядных элементов управления OLE.
  • Расширенный Мастер для создания программы установки пользовательского приложения.
  • Компилятор файла контекстной справки для Windows 95.
  • Справка по Visual Basic.
  • Справка по использованию объектов для доступа к данным.
  • Справка по объектной модели MS Office.

    Visual Basic поставляется в трех вариантах: стандартная и профессиональная версии, и версия масштаба предприятия (Enterprise Edition):

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

    Более подробно различия между этими тремя версиями представлены в табл. 3.9.

Таблица 3.9. Набор средств разработки программ в различных версиях Visual Basic 4.0a - в стандартной (С), профессиональной (П) и в версии масштаба предприятия (МП)
Средства разработкиСПМП
Визуальная среда разработки, включающая мощный структурный язык программирования+++++
Возможность расширения среды разработки за счет встроенного (Add-in) дополнительного инструментария разработчика (типа CASE-средств)+++++
Возможность использования готовых компонентов для быстрой разработки приложений (ActiveX, 16-разрядные Visual Basic Custom Controls, OLE-объекты и DLL)+++++
Редактор с цветным выделением синтаксиса и компилятор для получения псевдокода для 16-битной и 32-битной операционных систем на основе одного и того же кода+++++
Отладчик программного кода с возможностью отслеживания значений переменных, отметки точек остановки и сохранения стека вызова подпрограмм+++++
Набор стандартных элементов управления+++++
Элементы управления Windows 95, трехмерные элементы управления, элементы управления для мультимедиа и т. п.+++
Поддержка операционных систем32-бит16 и 32-бит16 и 32-бит
Менеджер компонентов+
Утилита построения профиля программы+
Программа управления версиями Visual SourceSafe+
Процессор данных (в стандартную версию Visual Basic включена ограниченная подверсия процессора данных, которая, например, позволяет получить доступ к существующей БД, но не позволяет создать новую)+++++
Возможность использования данных Microsoft Access, FoxPro, dBASE, Paradox и Btrieve (только в 16-битной версии) наряду с таблицами Microsoft Excel и текстом+++++
Менеджер данных для визуальной работы с данными+++++
Элементы управления для работы с данными без необходимости написания кода+++++
Полная поддержка стандарта ODBC 2.0,, включающая прокручивающиеся курсоры. Драйвер для Microsoft SQL Server+++++
Data Explorer+
Высокоэффективные элементы управления внешними данными (Remote Data Control - RDC), основанные на ODBC и оптимизированные для работы с ORACLE Server и Microsoft SQL Server+
Поддержка OLE 2.0+++++
Создание сервера OLE Automation+++++
Утилита и Мастер создания программы для распространения и установки пользовательского приложения+++++
Библиотека графических изображений, включающая более 450 значков для использования в пользовательском приложении+++++
Утилита построения отчета Crystal Reports for Visual Basic 4.0 и соответствующие элементы управления для печати отчета в пользовательском приложении+++
Справка по Windows 3.1 и Windows 95 API (справка по Win32 API только на CD-ROM)+++
Более 250 изображений в форматах bmp и wmf+++
Компилятор файла контекстной помощи для пользовательского приложения+++

    Так же как для Visual FoxPro, для Visual Basic существует записанная на CD-ROM интерактивная система изучения этого средства разработки - Mastering Microsoft Visual Basic 4.0. Этот пакет охватывает следующие основные темы:

  • Обзор Visual Basic как средства быстрой разработки приложений.
  • Контроль вводимых пользователем в прикладную программу значений.
  • Обработка ошибок.
  • Доступ к данным посредством элементов управления.
  • Объекты для доступа к данным.
  • Разработка баз данных.
  • Подготовка отчетов с помощью Cristal Reports.
  • Использование динамических библиотек Windows.
  • Применение OLE и создание OLE-сервера.
  • Создание вспомогательных средств разработки.
  • Создание приложения, способного работать с электронной почтой.
  • Позиционирование приложения для решения реальных задач в области бизнеса.

    Microsoft SQL Server - мощное средство управления данными в архитектуре "клиент-сервер" поставляется как отдельный пакет и в составе пакета BackOffice. MS SQL Server поддерживает следующие сетевые протоколы:

  • Microsoft Windows NT Server
  • Microsoft LAN Manager
  • Novell NetWare
  • TCP/IP
  • IBM LAN Server
  • Banyan VINES
  • DEC PATHWORKS
  • Apple AppleTalk

    Он также обеспечивает работу следующих клиентов:

  • Microsoft Windows 3.1
  • Microsoft Windows 95
  • Microsoft Windows for Workgroups
  • Microsoft Windows NT Workstation
  • Microsoft MS-DOS
  • UNIX
  • Apple Macintosh
  • IBM OS/2

    В состав пакета BackOffice помимо MS SQL Server входят еще 4 хорошо интегрированных пакетов программ для эффективной работы в системах клиент-сервер:

  • Microsoft Windows NT Server - это многоцелевая сетевая операционная система, включающая чрезвычайно быструю файловую систему, серверы приложений и печати, создающие основу для функционирования как самого SQL Server, так и пользовательских приложений. Эта операционная система способна функционировать на компьютере, имеющем до 32 процессоров, и легко интегрируется в самые распространенные сетевые системы, такие как Novel NetWare, UNIX и т. д.
  • Microsoft SNA Server - это система (шлюз) для связи сети персональных компьютеров с мэйнфреймами (большими ЭВМ) фирмы IBM, использующими протоколы SNA (Systems Network Architecture).
  • Microsoft Systems Management Server позволяет выполнять администрирование компьютеров, распределенных в сети. Это предоставляет возможность централизованно проводить установку и модернизацию программного обеспечения на всех компьютерах, включенных в сеть, а также при необходимости выполнять их диагностику.
  • Microsoft Mail Server - система передачи электронных сообщений, а также удобное средство организации и управления всем потоком входящих и исходящих сообщений. В состав пакета входит дизайнер электронных форм - Microsoft Electronic Forms Designer. Используя входящие в него шаблоны и язык программирования Visual Basic, пользователи смогут создавать собственные электронные формы и бланки и пересылать их друг другу.

    Стоит добавить, что пакет BackOffice позволяет легко интегрировать все сетевые службы и ресурсы с помощью единой процедуры регистрации доступа пользователя. Все входящие в него программы отвечают требованиям секретности правительства США С2 и европейскому сертификату Е3.
    Перед выбором соответствующего средства разработки стоит хорошо подумать о том, на каких компьютерах и под управлением какой операционной системы будет работать создаваемое вами пользовательское приложение. Требования к программному и аппаратному обеспечению сведены в табл. 3.10.

Таблица 3.10. Требования к программному и аппаратному обеспечению
ПоказателиVisual FoxPro 3.0Access 7.0Visual Basic 4.0SQL Server 6.5
Минимальные требования к процессору компьютера486DX486DX386DX486DX-33 (Intel Pentium), PowerPC, MIPS, R4xxx или Alpha AXP
Операционная система (наиболее ранняя поддерживаемая версия):++++
Windows 3.1+++++
Windows 95++++ ++
Windows NT 3.5+++++++
Необходимый объем оперативной памяти, Мб8 (12)12 (16 для Windows NT)6 (16 для Windows NT)16 (32)
Занимаемый объем на жестком диске, Мб15-8010-408-3680
Дополнительные устройстваМышь, привод CD-ROMМышь, привод CD-ROMМышь, привод CD-ROMПривод CD-ROM

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

Глава 2 || Содержание || Глава 4