Модуль данных

В программе нам понадобятся 5 компонентов ТТаble и два компонента TDataSource. Разместим их в отдельном модуле данных, чтобы эти компоненты не загроможда­ли основное окно.

Выберите команду File ► New ► Others, чтобы открыть окно хранилища объектов, и на вкладке New открывшегося окна дважды щелкните на значке Data Module. В свойство Name модуля данных поместите значение DM и сохраните модуль в файле dmNaklsU. Чтобы связать модуль с проектом, щелкните на копке панели ин­струментов и выберите только что созданный файл dmNakl sU.

Для связи таблиц с БД воспользуемся компонентом TDatabase на вкладке BDE палитры компонентов Delphi: щелкните на нем и затем — на имени модуля DM в окне дерева объектов. В окне инспектора объектов раскройте список свойства AliasName и выберите псевдоним BIBLDATA. В строке свойства DatabaseName напишите произвольное имя (например, AAA) так называемого локального псевдо­нима, который создает компонент TDatabase.

Локальный псевдоним доступен только в той программе, в которой использу­ется компонент TDatabase. Этот компонент выполняет множество полезных функций, обеспечивающих связь программы с БД. Для файл-серверных сис­тем только с его помощью можно реализовать транзакции — специальный ме­ханизм доступа к данным, повышающий их достоверность и непротиворечи­вость. В клиент-серверных системах он, кроме того, способен передать серверу БД имя пользователя, его пароль и ряд других параметров, оптимизирующих связь с сервером и избавляющих пользователя программы от обязательной регистра­ции на сервере.

После определения псевдонима БД и создания локального псевдонима исчезнет красный знак вопроса слева от компонента в окне дерева объектов, что свидетель­ствует о готовности компонента к работе. Поскольку в нашей простой программе мы не будем непосредственно обращаться к компоненту, можно оставить его имя Databasel, заданное по умолчанию, но я все-таки рекомендую изменить его на DB: в дальнейшем на примере этой программы я продемонстрирую работу механизма транзакций, и в программном коде нам придется обращаться к методам и свой­ствам этого компонента.

Теперь перенесите в окно дерева объектов компонент ТТаblе (вкладка BDE) и «поло­жите» его на псевдоним AAA. В окне инспектора объектов в свойстве DatabaseName нового компонента автоматически появится имя локального псевдонима AAA, одна­ко слева от компонента в окне дерева объектов будет красный знак вопроса, означа­ющий, что компонент ТТаЫе еще не готов к работе.

 

Компонент ТТаble является набором данных (НД). Он преимущественно ис­пользуется в файл-серверных системах для доступа к данным из какой-либо од­ной таблицы БД. Чтобы подготовить компонент к работе, необходимо опреде­лить имя этой таблицы: раскройте список его свойства TableName и выберите в нем таблицу NAKLS. В дальнейшем нам придется много раз обращаться к мето­дам и свойствам этого компонента, поэтому измените его имя Table 1, заданное по умолчанию, на имя связанной с ним таблицы: в строке свойства Name введите Nakls.

Чтобы данные из НД Nakls смогла отобразить сетка DBGridl в главном окне про­граммы, ее нужно связать с НД с помощью специального компонента TDataSource: выделите его на вкладке Data Access палитры компонентов и затем щелкните на компоненте Nakls в окне дерева объектов, чтобы связать его с НД.

Теперь подготовим вторую пару ТТаblе — TDataSource для отображения дан­ных из таблицы MOVEBOOK во второй сетке главного окна: «положите» на псевдо­ним AAA набор данных ТТаЫе, а на него — источник данных TDataSource; свя­жите НД с таблицей MOVEBOOK и дайте ему имя Move. Вид модуля данных к этому моменту показан на рис. 1.15.

 

Наборы данных Na kl s и Move связаны реляционным отношением один ко многим: единственной записи (накладной) в первом НД может соответствовать произволь­ное количество записей (книг) во втором. Чтобы НД «знали» об этом и согласо­ванно отображали данные, их нужно предварительно подготовить. Перейдите на вкладку Diagram в окне кода модуля данных (предварительно нажмите клавишу F12 для визуализации окна кода) и с помощью мыши «перетащите» компоненты Nakls и Move из окна дерева объектов на вкладку Diagram. Перетаскивание реализуется классическим способом Drag&Drop: левая кнопка мыши нажимается на компо­ненте в окне дерева объектов и остается нажатой при перемещении указателя мыши на вкладку Diagram, после чего отпускается. Расположите таблицы Diagram одну под другой так, как это показано на рис. 1.16.

Рис. 1.15. Окно модуля данных с двумя наборами данных и окно дерева объектов

 

Рис. 1.16. Расположение таблиц в окне Data Diagram

Для установления связи между таблицами щелкните на кнопке [Щ: (кнопка Master Detail) панели инструментов, подведите указатель мыши в виде перечеркнутого круга к нижней кромке верхней таблицы (в этот момент указатель превратится в крестик), нажмите левую кнопку мыши и, удерживая ее нажатой, прочертите ли­нию к верхней кромке нижней таблицы, после чего отпустите кнопку. На экране появится окно конструктора связей (рис. 1.17).

Чтобы установить связь, нужно указать связываемые поля в родительской и до­черней таблицах. По умолчанию для дочерней таблицы конструктор связей вы­брал поле с первичным ключом Move ID. Чтобы сменить поле, нужно раскрыть список Available Indexes в верхней части окна и выбрать индекс MOVEBOOK_NAKL. После этого в поле Detail Fields появится имя поля MNakl — щелкните на нем и на имени поля NakllD в списке Master Fields, после чего щелкните на кнопке Add (эта кнопка станет доступной только после выделения полей связи и перестает быть доступной после щелчка на ней). Закройте окно конструктора связей щелч­ком на кнопке ОК.

Рис. 1.17. Окно конструктора связей

После выполнения этих действий между таблицами NAKLS и MOVEBOOK устанав­ливается связь один ко многим по полю NakllD, о чем свидетельствует вид окна Data Diagram на рис. 1.18.

Рис. 1.18. Окно Data Diagram после установления связи между таблицами

Щелкните на таблице Movebook. DB в окне дерева объектов и откройте набор дан­ных Move: в окне инспектора объектов поместите в его свойство Active значение True. Точно так же откройте таблицу Nakls.

На этом начальный этап работы с окном модуля данных закончен, и нам нужно перей­ти к главному окну программы (щелкните на вкладке fmNaklsU в окне кода и нажмите клавишу F12). С помощью команды File ► Use Unit свяжите модуль главного окна с модулем данных. Для верхней сетки DBGridl раскройте список свойства DataSource и выберите в нем пункт DataSourcel — сетка туг же наполнится данными из НД Nakls. Точно так же свяжите нижнюю сетку с источником данных DataSource2. Свяжите на­вигатор баз данных DBNavigatorl в нижней части окна с источником DataSourcel.








Дата добавления: 2015-04-15; просмотров: 609;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.