Рис. 15 Главная форма приложения, использующего вложенные таблицы. Сами таблицы формата Paradox, естественно, не поддерживают поля, содержащие вложенные таблицы, но такие поля поддерживает компонент TClientDataSet со страницы MIDAS палитры компонентов. Связав его с компонентом Table1 посредством компонента Provider1, мы получим набор данных, содержащий поле Table2 типа TDataSetField, а внутри вложенной таблицы - поле Table3 того же типа:
Рис. 16 Вложенные таблицы на этапе выполнения. Такое представление данных даже в случае использования настольных СУБД весьма удобно просто потому, что оно решает общеизвестную проблему нехватки места на форме при наличии нескольких связанных таблиц. Единственное, о чем при этом следует позаботиться, это вызов метода ApplyUpdates компонента TClientDataSet (например, в обработчике события, связанного с выбором какого-либо пункта меню или с нажатием на кнопку): ClientDataSet1.ApplyUpdates(-1); Если не использовать этот метод, данные будут сохраняться только в кэше, которым фактически и является компонент TClientDataSet, а не в самих таблицах. Новый генератор запросов - SQL BuilderВ Delphi 4 в качестве построителя запросов используется SQL Builder, уже знакомый пользователям Visual dBase 7 и C++Builder 3. Он позволяет создавать и выполнять запросы, редактировать созданные SQL-предложения, использовать вычисляемые поля и связи между таблицами, основанные на выражениях.
Рис. 17 SQL Builder. Сгенерированный запрос можно отредактировать вручную, и все внесенные изменения будут отображены в дизайнере запросов.
Рис. 18 Сгенерированный текст запроса можно редактировать. Возможен также просмотр результатов запроса и копирование полученного набора данных в буфер обмена.
Рис. 19 Выполнение запроса из SQL Builder Отметим, что скопированный в буфер обмена текст легко преобразуется в таблицы текстовых процессоров (например, MS Word 97). Новые возможности генерации отчетовВ генераторе отчетов QuickReport добавлены компоненты TQRTextFilter, TQRHTMLFilter и TQRCSVFilter, позволяющие сохранять отчеты не только в оригинальном формате *.qrp, но и в виде текстового файла, файла формата HTML или CSV (Comma Separated Value).
Рис. 20 Отчет QuickReport с возможностью сохранения данных в формате HTML.
Рис. 21 Отчет QuickReport в формате HTML, отображенный в броузере. Автоматизация создания приложений для публикации данных в InternetВ Delphi 4 имеется DB Web Application Wizard, позволяющий автоматизировать создание приложения для публикации данных в Internet. После выбора соответствующей пиктограммы в репозитарии объектов можно выбрать тип приложения и тип компонентов TDBDataSet для построения приложения.
Рис. 22 Выбор DB Web Application Wizard из репозитария объектов Delphi 4.
Рис. 23 Выбор типа приложения. Далее следует выбрать псевдоним базы данных и имя публикуемой таблицы.
Рис. 24 Выбор псевдонима базы данных и таблицыдля публикации в Web. После этого следует выбрать публикуемые поля таблицы:
Рис. 25 Выбор публикуемых полей. И, наконец, далее следует ввести текст заголовка генерируемой приложением страницы, а также текст, помещенный перед таблицей и после нее.
Рис. 26 Ввод заголовка таблицы и дополнительного текста После этого можно открыть полученный компонент TWebModule, выбрать компонент Table1 и установить его свойство Active равным True.
Рис. 27 Сгенерированный компонент TWebModule
Рис. 28 Редактор свойства Actions компонента TWebModule Далее можно выбрать сгенерированный объект TWebAction, выбрать его в качестве действия по умолчанию - и можно компилировать приложение, а затем тестировать его с помощью web-сервера и web-броузера.
Рис. 29 Результат выполнения сгенерированного приложения Создание многозвенных системВозможности создания многозвенных информационных систем в Delphi 4 существенно расширены по сравнению с прежней версией. В данную версию включена поддержка CORBA (Common Object Request Broker Architecture), что позволяет использовать в качестве серверов приложений сервисы, выполняющиеся на различных платформах. Имеется также поддержка Microsoft Transaction Server. В палитре компонентов теперь имеется отдельная страница MIDAS, содержащая компоненты, используемые в серверах приложений и "тонких" клиентах, в частности, новые компоненты TCorbaConnection, TDCOMConnection, TSocketConnection, TOLEnterpriseConnection (последние три обладают свойством LoginPrompt, поддерживающим аутентификацию пользователя). В репозитарии объектов имеется соответствующая страница Multitier, содержащая генераторы соответствующих типов приложений.
Рис. 30 Шаблоны серверов приложений репозитария объектов Создание многозвенной системы, где сервер приложений обеспечивает доступ к данным, по-прежнему представляет собой несложный процесс.
Рис. 31 Создание удаленного модуля данных После выбора соответствующей пиктограммы (например, Remote Data Module) из репозитария объектов и ввода характеристик соответствующего COM-объекта получим удаленный модуль данных, в который можно поместить компоненты доступа к данным.
Рис. 32 Главная форма и модуль данных сервера приложений Далее следует экспортировать компоненты доступа к данным из модуля данных:
Рис. 33 Библиотека типов удаленного модуля данных После этого можно скомпилировать сервер приложений и приступить к созданию "тонкого" клиента. С этой целью можно добавить в имеющуюся группу проектов еще один проект (если разработка клиента ведется на том же компьютере, где создавался сервер приложений), либо просто создать новый проект или активную форму (в случае "тонкого" клиента в виде ActiveX) и поместить туда какой-либо компонент доступа к удаленному серверу (например, TSocketConnection). Для осуществления удаленного доступа с помощью TSocketConnection следует запустить на том компьютере, где содержится сервер приложений, Borland Socket Server. Затем следует установить свойства Host и ServerName равными имени компьютера и удаленного модуля данных (в формате <имя исполняемого файла>.<имя удаленного модуля данных>) соответственно. Далее можно поместить на форму компонент TClientDataSet, связать его с компонентом TSocketConnection и выбрать значение свойства ProviderName из выпадающего списка. Теперь можно помещать на форму компоненты для отображения данных (например, создав объекты TFields и переместив их на форму методом drag-and-drop из списка полей). Таким образом, "тонкий" клиент готов.
Рис. 34 Главная форма "тонкого" клиента Помимо соединения клиента с сервером с помощью протокола TCP/IP, возможно использование Microsoft DCOM (Distributed Component Object Model) и соответственно компонента TDCOMConnection, а также технологии OLenterprise (с помощью компонента TOLEnterpriseConnection). Отметим, что CORBA-серверы и CORBA-клиенты с помощью Delphi 3 создаются примерно так же.
|