Работа с базами данных
При использовании компонента TTable можно создавать, переименовывать и удалять таблицы непосредственно в дизайнере форм - в контекстном меню этого компонента есть соответствующие команды.
Поддержка новых версий СУБД и новых типов данных
Библиотека Borland Database Engine (BDE) теперь поддерживает Access '97 и Oracle8, при этом поддерживаются новые расширения Oracle 8, такие как абстрактные типы данных (ADT - Abstract Data Type), массивы, ссылки, вложенные таблицы. В соответствии с этим созданы новые классы объектов - потомков TField: TADTField, TReferenceField, TDataSetField, TArrayField.
Поддержка вложенных таблиц
Компонент TDBGrid теперь может отображать вложенные таблицы. Для иллюстрации этой возможности воспольуемся таблицами customer.db, orders.db и items.db, поставляемыми вместе с Delphi. Поместим на форму три компонента TTable, три компонента TDataSourse, один компонент TClientDataSet и один компонент TProvider. Установим следующие свойства этих компонентов:
Компонент | Свойство | Значение |
DBGrid1 | DataSource | DataSource3 |
DBNavigator1 | DataSource | DataSource3 |
Table1 | DatabaseName | 'DBDEMOS' |
TableName | 'customer.db' |
Active | True |
DataSource1 |
DataSet | Table1 |
Table2 | DatabaseName | 'DBDEMOS' |
TableName | 'orders.db' |
IndexFieldNames | 'CustNo' |
MasterFields | 'CustNo' |
MasterSource | DataSource1 |
Active | True |
DataSource2 | DataSet | Table2 |
Table3 | DatabaseName | 'DBDEMOS' |
TableName | 'items.db' |
IndexFieldNames | 'OrderNo' |
MasterFields | 'OrderNo' |
MasterSource | DataSource2 |
Active | True |
Provider1 | DataSet | Table1 |
ClientDataSet1 | ProviderName | 'Provider1' |
Active | True |
DataSource3 | DataSet |
ClientDataSet1 |
Рис. 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 создаются примерно так же.
Назад | Содержание | Вперед