АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

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

Читайте также:
  1. Access. Базы данных. Определение ключей и составление запросов.
  2. Decide which answer А, В, С or D best fits each space. Подумайте, какие из предложенных ответов лучше подходят для данных выражений.
  3. Decide which answer А, В, С or D best fits each space. Подумайте, какие из предложенных ответов лучше подходят для данных выражений.
  4. I. Організація та проведення модульного і підсумкового контролю
  5. I. Разработка структуры базы данных.
  6. I.5.3. Подготовка данных для задачи линейного программирования
  7. I.5.7. Mодификация (изменение) данных задачи
  8. III. Векторное произведение векторов, заданных координатами
  9. ODBC - открытый интерфейс к базам данных на платформе Microsoft Windows — до 15 мин.
  10. Абстрактные структуры данных
  11. Автоматизация обработки кадастровых данных
  12. Автоматизированная система обработки данных правовой статистики

В программе нам понадобятся 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.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

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



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)