Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции. РАзработка БД в среде Delphi.doc
Скачиваний:
24
Добавлен:
12.06.2015
Размер:
315.39 Кб
Скачать

4.3.5. Изменение структуры таблицы

Структуру созданной таблицы можно изменить. Для этого необходимо выбрать элемент меню Tools | Utilities | Restructure, выбрать таблицу и произвести необходимые изменения в структуре таблицы. Можно добавлять, удалять поля, изменять их типы и имена. В некоторых случаях система попросит подтвердить выполнение действий.

4.4. Открытие и сохранение таблицы

Для изменения данных, хранящихся в таблице, таблицу необходимо «открыть». Открытие таблицы происходит с помощью подменю File | Open. Внесение изменений (добавление/удаление записей, изменение значений полей конкретных записей и т.д.) происходит только в режиме редактирования. Для перехода в режим редактирования необходимо нажать клавишу F9. Сохранение изменений в таблице происходит по выбору пунктов меню File | Save или File | SaveAs. Перед сохранением изменений необходимо выйти из режима редактирования, повторно нажав клавишу F9.

4.5. Дополнительные утилиты

Рассмотрим некоторые дополнительные возможности, которые среда Database Desktop предоставляет для работы с таблицами. Эти возможности доступны через пункт меню Tools | Utilities:

Add – добавить записи из одной таблицы в другую (структуры должны совпадать);

Copy – копировать одну таблицу в другую;

Delete – удалить таблицу;

Empty – опустошить таблицу (удалить все записи);

Info Structure – показать структуру таблицы;

Rename – переименовать таблицу;

Sort – отсортировать таблицу по значениям каких-либо полей;

Restructure – изменить структуру таблицы;

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

Лекция 5. Основные классы, обеспечивающие доступ к таблицам БД: назначение, свойства, методы

5.1. Взаимодействие классов, обеспечивающих доступ к таблицам

Назначение любого БД-приложения – обеспечить пользователю удобный интерфейс для работы с информацией, представленной в таблицах базы данных. Рассмотрим основные классы среды Delphi, обеспечивающие программиста разнообразными возможностями для реализации такого интерфейса.

Классы объектов, обеспечивающие доступ к таблицам БД, связаны между собой следующим образом:

Набор данных БД (физическая таблица БД или результат запроса) Объект класса TTable или TQuery Объект класса TDataSource Объект класса TDBGrid или класса TDBЕdit

Поясним предложенную схему. Данные из таблицы БД или результат запроса по таблицам БД представляются объектами классовTTable или TQuery соответственно. Классы TTable и TQuery связываются с объектом класса TDataSource, а уже объект класса TDataSource непосредственно связывается с визуальными компонентами DBGrid или DBЕdit, обеспечивающими отображение данных и возможность внесения изменений. На рис. 5.1 представлена форма с необходимыми компонентами для представления информации из одной таблицы БД.

Рис. 5.1

Рассмотрим подробнее атрибуты, методы и события, связанные с данными классами.

  1. Класс TTable обеспечивает доступ к конкретной таблице БД в целом. Это наиболее важный и сложный класс и будет далее рассмотрен подробно.

  1. Класс TDataSource обеспечивает связь визуальных компонентов (TDBGrid или TDBЕdit) со множеством данных БД. Связь осуществляется через класс TDataSet, поэтому основной атрибут класса  DataSet, в котором задается имя объекта, непосредственно связанного с набором данных БД. Класс TDataSet – предок класса TTable, объекты которого представляют конкретные таблицы БД. Для доступа к результатам запросов (см. лекцию 7) используются объекты другого наследника TDataSet – класса TQuery. Наиболее интересное событие класса TDataSource – OnDataChange, которое происходит при изменении связанных с объектом данных, позволяет их отслеживать, обрабатывать, сообщать о них пользователю.

  1. Класс TDBGrid («сетка») обеспечивает возможность отображения и редактирования данных в виде таблицы, строки которой соответствуют записям таблицы БД, а столбцы – полям записи. Свойство DataSource содержит имя компонента-источника TDataSource, который ссылается на соответствующую таблицу. Изменяя значение свойства DataSource во время выполнения, можно использовать один и тот же компонент TDBGrid для показа содержимого различных наборов данных.

Для определения состава столбцов в TDBGrid используется редактор столбцов (Columns Editor). В окне редактора устанавливаются значения свойств объектов-столбцов. Текущие значения свойств определяют способ отображения столбцов в сетке. Если в процессе выполнения приложения программно изменять то или иное свойство столбца, то эти изменения немедленно отобразятся. Например, в ходе выполнения можно менять ширину столбца (свойство DisplayWidth связанного со столбцом объекта TField), его видимость (Visible), возможность редактирования значения столбца (ReadOnly), порядковый номер (Index), заголовок столбца (DisplayLabel).

К основным событиям данного класса можно отнести следующие: OnCellClick – возникает при щелчке мыши на ячейке; OnDblClick – возникает при двойном щелчке мыши; OnTitleClick  возникает при щелчке по заголовку; OnColEnter – возникает сразу после того, как ячейка становится активной («получает фокус»); OnColExit – возникает перед тем, как ячейка перестает быть активной («теряет фокус»).

Стандартно реализованы следующие способы работы пользователя с информацией из таблиц.

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

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

- При внесении изменений в текущее поля происходит переход в режим редактирования.

- Внесение изменений в таблицу БД и выход из режима редактирования происходит после перехода к другой записи. Отказаться от изменений и выйти из режима редактирования можно по клавише Esc.

  • Удалить текущую запись можно, нажав одновременно клавиши Ctrl и Del.

  1. Класс TDBЕdit обеспечивает возможность отображения и редактирования одного поля текущей записи таблицы. Функции данного класса аналогичны функциям класса TEdit, но источником данных и их приемником в этом случае служит поле таблицы. Свойство DataSource содержит имя компонента-источника, который ссылается на соответствующую таблицу, а свойство DataField – имя соответствующего поля. При вводе значения в компонент автоматически отслеживается его совместимость с типом поля таблицы. Ввод неправильных значений блокируется, и выдается сообщение об ошибке. Например, произойдет ошибка, если в компонент, связанный с полем числового типа или типа дата-время, попытаться ввести произвольный текст.

Основные свойства, методы и события этого класса аналогичны свойствам, методам и событиям класса TEdit с учетом специфики класса TDBЕdit.

5. Класс TDBNavigator позволяет осуществлять навигацию по записям таблицы, переводить таблицу в состояние вставки, изменения, добавления записи, запоминать изменения. Свойство DataSource содержит имя компонента-источника, который ссылается на соответствующую таблицу. Свойство VisibleButtons состоит из множества свойств с логическими значениеми, каждое из которых соответствует некоторой кнопке навигатора: nbFirst – перейти к первой записи; nbPrior – перейти к предыдущей записи; nbNext – перейти к следующей и т.д. Кнопка отображается на Навигаторе, если соответствующее ей свойство имеет значение Тrue. Наиболее часто используется событие OnClick, которое возникает при щелчке мыши на кнопке Навигатора.