Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Разработка информационной системы Органайзер

Поиск

6.1 Проектирование реляционной базы данных

6.1.1 Общие сведения

6.1.1.1 Понятие базы данных

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

В общем смысле база данных – совокупность данных различных типов. На рисунке 106 представлен фрагмент простейшей базы данных.

Рисунок 106 – Фрагмент простейшей базы данных

Базы данных делятся на локальные, сетевые и удаленные (серверные).

Локальные базы данных устанавливаются на одном компьютере. Такие базы данных являются самыми простыми.

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

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

В настоящей работе будут рассмотрены локальные базы данных.

6.1.2 Задание на работу

Необходимо в MS Access 2007 разработать базу данных «Органайзер», содержащую сведения о работниках, поручениях и ответственных за поручения лицах.

6.1.3 Выполнение задания на работу

С точки зрения информационных технологий база данных – файл, в котором может храниться от одной до нескольких таблиц.

Существуют базы данных, способные хранить только одну таблицу, например, dBase, Paradox, XML, первые версии Fox Pro.

Также существуют базы данных, способные содержать в одном несколько таблиц, например Access, Open Office. Org Base, современные версии Fox Pro. Такие базы называются реляционными (от англ. relation – связь, родство). Реляционные базы данных получили широкое распространение за счет возможности исключать повторяющиеся записи и, вследствие этого, экономии места на жестком диске.

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

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

- сведения о работниках организации (фирмы);

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

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

Рисунок 107 – Схема данных базы «Органайзер»

Также на схеме: каждый работник имеет индивидуальный набор характеризующих его сведений (тип связи «один к одному»); за каждое поручение ответственен только один работник (тип связи «один к одному»).

Порядок загрузки таблиц следующий[16]:

Уровень 1: Сведения о работниках (рисунок 108, а, б).

Уровень 2: Работники (рисунок 109).

Уровень 3: Поручения (рисунок 110)[17].

Уровень 4: Работники и их поручения (рисунок 111).

Уровень 5: Ответственный (рисунок 112)[18].

а

б

Рисунок 108 – Таблица «Сведения о работниках»

Рисунок 109 – Таблица «Работники»

Рисунок 110 – Таблица «Поручения»

Рисунок 111 – Таблица «Работники и их поручения»

Рисунок 112 – Таблица «Ответственный»

6.1.4. Контрольные вопросы

1 Что такое база данных?

2 Что такое база данных с точки зрения информационных технологий?

3 Как называются базы данных, состоящие из нескольких взаимосвязанных таблиц? Почему?

4 На какие основные виды подразделяются базы данных?

5 В чем заключается основное отличие серверных базах данных от сетевых?

6 Связи каких типов можно установить между таблицами при проектировании реляционных баз данных?

7 Что такое схема базы данных?

8 Как установить порядок загрузки таблиц данными при заполнении базы данных?

9 Записи какого типа может содержать база данных?

10 Какие таблицы обязательны при проектировании базы данных «Органайзер»?

 


 

Технология ADO

Общие сведения

6.2.1.1 Компоненты Delphi для работы по технологии ADO

Для работы с базами в Delphi есть несколько наборов компонент. Каждый набор подходит для решения определённого круга задач, использует разные технологии доступа к данным и отличается по возможностям. В отличие от фирмы Microsoft, которая для работы с базами данных разработала технологию ADO, фирма Borland предоставила широкое многообразие различных технологий для работы с базами данных. Такое положение дел открывает перспективные возможности для работы программистов.

На закладке Data Access палитры компонентов[19] расположен основной набор компонентов доступа к данным. Эти компоненты могут использоваться совместно с другими группами компонентов (рисунок 113).

Рисунок 113 – Закладка Data Access палитры компонентов

На закладке Data Controls расположены компоненты для отображения и редактирования данных в таблицах. Эти компоненты так же используются в независимости от используемой технологии доступа к данным (рисунок 114).

Рисунок 114 – Закладка Data Controls палитры компонентов

На закладке BDE расположены компоненты, позволяющие получить доступ к базам данных по технологии, разработанной фирмой Borland под названием Borland Database Engine (рисунок 115). В настоящее время эта технология устарела и поставляется только для обеспечения совместимости со старыми типами баз данных, такими, как, например, Paradox и dBase.

Рисунок 115 – Закладка BDE палитры компонентов

На закладке DBExpress расположены компоненты, позволяющие получить доступ к базам данных по технологии, разработанной фирмой Borland под названием Borland Database Express (рисунок 116). Это новая технология доступа к данным фирмы Borland. Она отличается большей гибкостью и хорошо подходит для программирования клиент-серверных приложений, использующих базы данных. Компоненты с этой закладки целесообразно использовать с базами данных, построенных по серверной технологии, например, Oracle, DB2 или MySQL.

Рисунок 116 – Закладка DBExpress палитры компонентов

На закладке dbGo расположены компоненты[20], позволяющие получать доступ к данным по технологии ADO (Active Data Objects) (рисунок 117). Эта технология доступа к данным разработана корпорацией Microsoft. Компоненты с этой закладки целесообразно использовать исключительно с базами данных Microsoft, а именно MS Access или MS SQL Server[21].

Рисунок 117 – Закладка dbGo палитры компонентов

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

Задание на работу

Необходимо разработать информационную систему «Органайзер», содержащую в основе реляционную базу данных.

Для этого требуется:

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

- обеспечить доступ к таблицам базы данных «Органайзер»;

- обеспечить отображение данных из таблиц базы «Органайзер»;

- обеспечить визуализацию данных из таблиц базы «Органайзер».

6.2.3 Выполнение задания на работу

6.2.3 Выполнение задания на работу

6.2.3.1 Связь приложения с базой данных

Непосредственно перед установлением связи приложения с базой данных, необходимо создать новый проект. Выберем категорию проекта VCLForms Apltcation (рисунок 118).

Рисунок 118 – Создание проекта категории VCLForms Apltcation

После открытия формы необходимо переместить на нее компонент ADOConnection с закладки dbGo палитры компонентов (рисунок 119).

 

Рисунок 119 – Компонент ADOConnection

Компонент ADOTable имеет множество полезных свойств. Свойства отображаются в Инспекторе объектов и сгруппированы по четырем категориям:

Database.

Input.

Linkage.

Miscellaneous (рисунок 120).

Рисунок 120 – Каталоги свойств компонента ADOTable

Ниже приведены наиболее используемые свойства компонента ADOTable:

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

- AutoCalcFields. Это свойство позволяет установить или отключить автоматический пересчет полей текущей таблицы. Если это свойство равно true, то поля пересчитываются автоматически.

- CacheSize. Это свойство позволяет указать размер кэш памяти. Если в данном свойстве установить, например, число 50, то при подключении к таблице из нее будут выбраны и размещены в локальной памяти ее первые 50 строк. Такой подход упрощает доступ к данным.

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

- ConnectionString. Это свойство указывает строку подключения приложения к базе данных.

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

- CursorType. Это свойство указывает тип курсора. Здесь возможен один из следующих вариантов:

- ctUnspecified - расположение курсора не указано;

- ctOpenForwardOnly - курсор может двигаться только вперёд;

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

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

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

Если курсор расположен на машине клиента, то можно использовать только статический курсор.

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

- Filter. Это свойство позволяет устанавливать фильтры (отсеивать часть информации).

- Filtered. Это свойство позволяет указать, является ли таблица базы данных фильтруемой. Если здесь установить False, то фильтрация будет игнорироваться.

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

- TableDirect. Это свойство отображает тип доступа к текущей таблице базы. Если это свойство равно true, то будет происходить прямой доступ к таблице по ее имени. Если этот параметр равен False, то будет происходить специальный SQL запрос при обращении к таблице. Поскольку не все базы данных позволяют работать через прямой доступ, свойство TableDirect по умолчанию равно False.

- TableName. Это свойство отражает имя таблицы, данные из которой следует обрабатывать.

- MasterSource. В этом свойстве указывается главная по отношению к текущей таблица. Применяется при рассмотрении связанных таблиц базы.

В категории Input расположено свойство

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

В категории Linkage расположены:

- Connection. Это свойство позволяет указать компонент[22], через который происходит подключение приложения к базе данных.

- MasterSource. В этом свойстве указывается главная по отношению к текущей таблица. Применяется при рассмотрении связанных таблиц базы.

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

- Active. Это свойство указывает на активацию (включение в работу приложения) таблицы. Если это свойство равно true, то таблица активирована.

- Name. Это свойство необходимо для указания имени таблицы в базе данных.

После этого, как компонент ADOConnection был установлен на форму, необходимо настроить соединение с базой данных. Для этого следует выделить на форме компонент ADOConnection, в категории свойств Database Инспектора объектов (Object Inspector) выбрать строку ConnectionString и нажать мышью на кнопку с тремя точками (рисунок121).

Рисунок 121 – Инспектор объектов. Категория Database.

Строка ConnectionString

После этого откроется окно Source of Connection (Источник связи). В окне Source of Connection предоставляется две возможности:

1 Использовать специальный файл (Use Data Link File);

2 Использовать строку подключения (Use Connection String).

Выберем Use Connection String и нажмем кнопку Build (рисунок 122).

Рисунок 122 – Окно Source of connection (Источник связи)

После этого откроется окно Свойства связи с данными, где на закладке Provider перечислены все доступные ADO драйверы для доступа к базам данных. Указанные драйверы устанавливается на машину вместе с MS Office. Самым удобным и широко используемым считается драйвер Microsoft Jet 4.0 OLE DB Provider (рисунок 123).

Рисунок 123 – Окно «Свойства связи с данными»

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

Вид закладки Подключение зависит от выбранного драйвера. В рассматриваемом примере при выборе драйвера Microsoft Jet 4.0 OLE DB Provider окно Подключение будет выглядеть так, как показано на рисунке 124.

Рисунок 124 – Окно Подключение при выборе драйвера Microsoft

Jet 4.0 OLE DB Provider

 

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

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

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

После того как окно Подключение заполнено, необходимо нажать кнопку Проверить подключение (рисунок 125).

Рисунок 125 – Заполненное окно «Подключение»

Если информация указана верно, появиться сообщение, показанное на рисунке 126.

Рисунок 126 – Сообщение о результатах подключения

После успешной связи базы данных и приложения следует закрыть все окна, нажав на кнопки Ок.

Поскольку в окне Подключение пароль при обращении к базе данных указан не был, то для того чтобы при каждом обращении к базе данных не загружалось окно ввода пароля, необходимо отключить такое свойство компонента ADOConnection, как LoginPrompt. Для этой цели в окне Инспектора объектов в категории свойств Database в строке LoginPrompt следует указать False (рисунок 127). Если пароль был указан, то в строке LoginPrompt Инспектора объектов должно быть указано True.

Рисунок 127 – Отключение окна ввода пароля при обращении

к базе данных

Чтобы активировать созданную связь приложения и базы данных, необходимо в категории свойств Database в строке Connected Инспектора объектов установить True (рисунок 128).

Рисунок 128 – Активация связи приложения и базы данных

Если в строке Connected Инспектора объектов будет установлено False, созданная ранее связь не будет активирована.

На этом соединение приложения и базы данных считается законченным.

6.2.3.2 Обеспечение доступа к таблицам базы данных

Для обеспечения доступа к таблицам базы данных необходимо переместить на форму компонент ADOTable с закладки dbGo палитры компонентов (рисунок129).

Рисунок 129 – Компонент ADOTable

Можно изменить имя объекта ADOTable, указав в строке Name Инспектора объектов вместо ADOTable1 (рисунок 130,а) имя таблицы базы данных, которой этот объект соответствует, в данном случае Sved_o_rab[23] (таблица Сведения о работниках) (рисунок 130, б).

а б

Рисунок 130 – Присваивание имени компоненту ADOTable

Компонент ADOTable также содержит свойство ConnectionString, настройка которого вовсе необязательна при перемещении на форму компонента ADOConnection. Чтобы установить связь с соответствующей таблицей базы данных можно в строке Connection Инспектора объектов установить единственный существующий там пункт ADOConnection1 (рисунок 131). После этого заполнять свойство ConnectionString компонента ADOTable уже не требуется.

Рисунок 131 – Инспектор объектов. Категория Lincage.

Строка Connection

Теперь в свойстве TableName Инспектора объектов нужно выбрать имя соответствующей таблицы, в данном случае Сведения о работниках (рисунок 132).

Рисунок 132 – Инспектор объектов. Категория Database.

Строка TableName

На этом соединение с таблицей закончено. Для активации работы следует в строке свойства Active указать True (рисунок 133).

Рисунок 133 – Инспектор объектов. Категория Miscellaneous.

Строка Active

Поскольку база данных Органайзер состоит из пяти таблиц, компонент ADOTable со всеми необходимыми указаниями свойств должен быть установлен на форму пять раз (рисунок134).

Рисунок 134 – Пять компонентов ADOTable

6.2.3.3 Отображение данных из таблиц базы

Для отображения данных из таблиц (таблицы) базы данных необходимо установить на форму компонент DataSource с закладки Data Access палитры компонентов (рисунок 135).

Рисунок 135 – Компонент DataSource с закладки

Data Access палитры компонентов

На рисунке 136 представлена форма с установленным на нее компонентом DataSource.

Рисунок 136 – Форма с установленным на нее компонентом DataSource

После этого компоненту DataSource надо указать, какую именно таблицу он должен отображать. Для этого в свойстве DataSet Инспектора объектов нужно из выпадающего списка выбрать соответствующую таблицу (рисунок 137).

 

Рисунок 137 – Выбор таблицы для отображения ее данных

в приложении

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

Рисунок 138 – Пять компонентов ADOSource

6.2.3.4 Визуализация данных из таблиц базы

Самый простой способ визуализировать таблицу – установить на форму компонент DBGrid с закладки Data Control палитры компонентов (рисунок 139). Это компонент представляет собой сетку, которая может отображать данные в виде таблицы. В этом же компоненте можно добавлять, удалять и редактировать строки таблиц базы. На рисунке 140 показана форма с вынесенным на нее компонентом DBGrid.

 

Рисунок 139 – Компонент DBGrid закладки Data Control

палитры компонентов

Рисунок 140 – Форма с вынесенным на нее компонентом DBGrid

После вынесения компонента DBGrid на форму необходимо связать компонент сетки с компонентом отображения таблицы. Для этого в свойстве DataSuorce компонента DBGrid нужно указать ранее созданный компонент DataSource1(отображение таблицы Сведения о работниках) (рисунок 141).

Рисунок 141 – Связь компонент сетки с компонентом

отображения таблицы

После установления связи компонент сетки с компонентом отображения таблицы данные таблицы визуализируются. На рисунке 142 визуализированы данные таблицы Сведения о работниках.

Рисунок 142 – Визуализация таблицы Сведения о работниках

Поскольку в базе данных имеются пять таблиц, следует компонент DBGrid разместить на форме пять раз (рисунок 143).

Рисунок 143 – Пять компонентов DBGrid

Следует отметить, что при запуске проекта компоненты ADOConnection, ADOTable, DataSource будут не видны. Поэтому компоненты DBGrid расположены поверх перечисленных компонентов.

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

6.2.4 Контрольные вопросы

1 Что такое технология ADO?

2 Что такое Палитра компонентов? Какие на ней существую закладки и компоненты?

3 Как осуществить связь базы данных с приложением по технологии ADO?

4 Перечислите наиболее используемые свойства компонента ADOTable.

5 Какой драйвер является наиболее распространенным для обеспечения доступа к базам данных?

6 Каким образом можно обеспечить доступ к таблицам базы данных?

7 Каким образом в приложении можно отобразить данные из таблиц базы?

8 Каким образом можно обеспечить визуализацию данных из таблиц базы?

6.3 Работа с приложением

6.3.1 Общие сведения

6.3.1.1 Управление отображением данных

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

В системе Delphi при работе с приложениями предусмотрены возможности управления отображением данных.

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

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

Для удобства работы с приложением все компоненты доступа к базе данных целесообразно перенести в специальное отдельное окно – DataModule. Такой подход позволит не только легко управлять структурой базы данных, например, добавлять или убирать таблицы или поля, формировать и визуализировать данные таблиц или запросов, но и подключать к приложению другие базы данных. Окно DataModule можно расположить в любом удобном месте, и в случае необходимости обращения к нему, можно воспользоваться Менеджером проектов (Project Manager), дважды щёлкнув по нужной форме.

Следует отметить, что переключаться между визуальной формой и её кодом очень удобно нажатием клавиши F12.

Чтобы форма «узнала» о существовании компонентов доступа к базе данных, ей нужно указать в разделе uses модуль DataModuleUnit. Это можно сделать вручную или выбрать из меню File пункт Use Unit (в этот момент должно быть выделено окно кода главной формы). В появившемся окне нужно выбрать имя нового модуля DataModuleUnit (пока оно одно в списке) и нажать ОК. Теперь в редакторе кода после ключевого слова implementation появится uses DataModuleUnit.

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

6.3.2 Задание на работу

Необходимо:

- отладить и запустить приложение;

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

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

- создать окно Data Module;

- добавить в таблицу «Сведения о работниках» логическое поле Наличие загранпаспорта;

- добавить в таблицу «Поручения» логическое поле «Отметка о выполнении»;

- отобразить поля «Наличие загранпаспорта» и «Отметка о выполнении» в приложении;

- добавить в базу данных и отобразить в приложении еще одно произвольное поле;

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

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

- просмотреть результат в базе данных «Органайзер».

6.3.3 Выполнение задания на работу

6.3.3.1 Запуск приложения

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

Для запуска приложения следует нажать клавишу F9 или кнопку на панели инструментов (рисунок 144).

Рисунок 144 – Кнопка запуска приложения

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

Рисунок 145 – Форма после запуска приложения

6.3.3.2 Скрытие ключевых полей типа счетчик

В базе данных «Органайзер» ключевыми полями с типами счетчик являются:

- поле «Код работника» из таблицы «Сведения о работниках»;

- поле «Код работника» из таблицы «Работник».

Такие поля желательно убирать из поля зрения пользователя.

Чтобы скрыть поле, необходимо дважды щелкнуть по таблице, расположенной на форме и содержащей в себе поле, которое необходимо скрыть. Появится окно, в котором следует нажать кнопку для отображения всех полей таблицы (рисунок 146).

Рисунок 146 – Окно для отображения полей таблиц

На рисунке 147, а, б представлены окна с перечнем полей таблиц «Сведения о работниках» и «Работник» соответственно.

а – «Сведения о работниках»; б – «Работники»

Рисунок 147 – Окно отображения всех полей таблиц

Далее следует выделить поле, которое необходимо скрыть и нажать на клавиатуре клавишу Delete.

На рисунке 148 представлена таблица после скрытия поля Код работника.

Рисунок 148 – Фрагмент таблицы «Сведения о работниках» после скрытия

поля «Код работника»

6.3.3.3 Создание окна Data Module

С целью размещения компонентов доступа к базе данных в отдельном окне необходимо поместить все располагающиеся на форме компоненты в буфер обмена, для чего следует эти компоненты выделить (ADOConnection1, ADOTable 1… ADOTable n, DataSource1… DataSource n), а затем выбрать из категории главного меню Edit пункт Cut. Компоненты с формы исчезнут.

После этого в категории главного меню File необходимо выбрать New, а затем Data Module. Если Data Module напрямую выбрать нельзя, то следует выбрать other, а затем в появившемся окне Data Module (рисунок 149).

Рисунок 149 – Выбор специального окна Data Module

Далее выбранное окно необходимо открыть и вставить в него хранящиеся в буфере обмена компоненты. Окно Data Module лучшим образом подходит для хранения компонентов доступа к базам данных. Для вставки компонентов можно использовать команду Paste из категории главного меню Edit. Компоненты в окне Data Module можно разложить любым удобным способом (рисунок 150).

Рисунок 150 – Окно Data Module с компонентами доступа

к базам данных

 

После вставки компонентов новый модуль следует сохранить. Исунок 39

 

Для перехода из главной формы в окно Data Module можно воспользоваться Менеджером проектов (категория главного меню View команда Project Manager). В Delphi 2007 это окно открыто по умолчанию (рисунок 151).

Рисунок 151 – Менеджер проектов

Если два раза щелкнуть по надписи Unit1.pas – откроется код формы; Unit 1. dfm - откроется дизайн формы; Unit2.pas – откроется код окна Data Module; Unit 2. dfm - откроется дизайн окна Data Module.

Для перехода из формы в окно Data Module можно также воспользоваться закладками в окне редактора, при этом вызов кода или дизайна можно указать внизу окна редактора (рисунки 152а, 152б).

Рисунок 152а – Фрагмент окна редактора. Закладки

 

Рисунок 152б – Продолжение окна редактора. Кнопки переключения

в режимы «Код» и «Дизайн»

Для перехода из формы в окно Data Module можно также воспользоваться окном, показанным на рисунке 153, вызов которого осуществляется кнопкой .

Рисунок 153 – Окно для переключения между формами (окнами)

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

Рисунок 154 – Форма после перенесения компонентов доступа

к базе данных в окно Data Module[24]

Чтобы в этом убедиться, можно щёлкнуть по свойству DataSource, и посмотреть, что в выпадающем списке ничего нет.

Чтобы восстановить связь необходимо в разделе uses кода главной формы указать созданный модуль Unit2. Для этого следует выбрать в категории главного меню File команду Use Unit. В этот момент должно быть выделено окно кода главной формы, потому что происходит подключение нового модуля именно к ней. В появившемся окне (рисунок 155) следует выбрать необходимый модуль и нажать на кнопку ОК.

Рисунок 155 – Окно для выбора связываемого модуля

Теперь если переключится в окно кода главной формы, после ключевого слова implementation должна появиться надпись:

implementation

uses Unit2;

{$R *.dfm}.

Окно с кодом главной формы представлено на рисунке 156.

Рисунок 156 – Окно подключения нового модуля

После этого следует выделить сетку DBGrid и в свойстве DataSource указывать компонент, данные которого должны быть отображены в сетке (рисунок 157).

Рисунок 157– Выбор компонента для отображения в сетке

На рисунке 157, например: Data Module2. Data Sourse 1 – Источник связи 1, находящийся на модуле 2 (Unite 2 или окно Data Module).

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

Рисунок 158– Главная форма после создания окна Data Module

6.3.3.4 Добавление полей в таблицы базы данных и их отображение в приложении

Предположим, в таблицу базы данных «Сведения о работниках» следует добавить поле «Наличие загранпаспорта». С этой целью откроем базу данных «Органайзер», выберем из списка таблиц таблицу «Сведения о работниках» и выберем из контекстного меню команду Конструктор. Выбранная таблица откроется в режиме правки. Далее следует добавить поле Наличие загранпаспорта, выбрать логический тип данных (да/нет) и сохранить изменения в базе (рисунок 159).

Рисунок 159 – Добавление поля в таблицу «Сведения о работниках»

базы данных

После сохранения изменений базу данных следует закрыть.

Для того чтобы изменения отобразились в приложении Delphi, необходимо переключиться в окно DataModule и настроить там отображение данных. Если дважды щёлкнуть по компоненту ADOTable, откроется окно редактирования полей базы данных (Data module2.Sved_o_Rab[25]). Окно по умолчанию пусто (рисунок 160).

Рисунок 160 – Окно редактирования полей базы данных

Для отображения всех полей таблицы базы данных необходимо в открывшемся окне вызвать контекстное меню и выбрать команду Add All Field (Добавить все поля). Окно автоматически заполниться именами полей таблицы. На рисунке 161 представлено окно редактирования полей базы данных таблицы «Сведения о работниках» (добавлено поле «Наличие загранпаспорта»).

Рисунок 161 – Окно редактирования полей базы данных

таблицы Сведения о работниках

Если созданное поле не отображается, следует в Инспекторе объектов в свойстве Active поставить True (при этом соответствующий объект ADOTable должен быть выделен). После этого созданное поле следует отобразить в окне Editing DBGrid1.Columns. Для того чтобы вызвать указанное окно, следует в главной форме дважды кликнуть по сетке соответствующей таблицы. В появившемся окне следует нажать кнопку , а затем удалить предыдущий набор полей, нажав в появившемся диалоговом окне кнопку Yes (рисунок 162).

Рисунок 162 – Удаление предыдущего набора полей

Окно Editing DBGrid1.Columns с обновленным набором полей представлено на рисунке 163.

Рисунок 163 – Окно Editing DBGrid1.Columns с обновленным

набором полей

Поля в окне Editing DBGrid1.Columns можно менять местами. При этом их физическое расположение в базе данных не меняется, меняется только порядок отображения полей в сетке приложения.

Свойства полей таблицы отображаются в Инспекторе объектов:

- Visible. Это свойство необходимо для скрытия (значение False) или отображения (полей true) полей, например, для скрытия ключевых полей типа счетчик.

- DisplayWidth. Это свойство необходимо для установления ширины колонки. Например, для поля ФИО можно установить ширину, например 25 символов, тогда как по умолчанию, длина поля соответствует 50 символов. Чаще всего фиксированную длину символов устанавливают для таких полей, как № паспорта, чтобы не ошибиться и ввести не более 6 цифр.

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

- DefaultExpression. Это <



Поделиться:


Последнее изменение этой страницы: 2017-02-19; просмотров: 814; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.170.80 (0.013 с.)