![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Рассмотрим некоторые дополнительные возможности, которые среда Database Desktop предоставляет для работы с таблицами. Эти возможности доступны через пункт меню Tools | Utilities:
Add – добавить записи из одной таблицы в другую (структуры должны совпадать);
Copy – копировать одну таблицу в другую;
Delete – удалить таблицу;
Empty – опустошить таблицу (удалить все записи);
Info Structure – показать структуру таблицы;
Rename – переименовать таблицу;
Sort – отсортировать таблицу по значениям каких-либо полей;
Restructure – изменить структуру таблицы;
Subtract – удалить из таблицы записи, совпадающие с записями другой таблицы (записи должны совпадать).
Лекция 5. Основные классы, обеспечивающие доступ к таблицам БД: назначение, свойства, методы
Взаимодействие классов, обеспечивающих доступ к таблицам
Назначение любого БД-приложения – обеспечить пользователю удобный интерфейс для работы с информацией, представленной в таблицах базы данных. Рассмотрим основные классы среды Delphi, обеспечивающие программиста разнообразными возможностями для реализации такого интерфейса.
Классы объектов, обеспечивающие доступ к таблицам БД, связаны между собой следующим образом:
Набор данных БД (физическая таблица БД или результат запроса) Û Объект класса TTable или TQuery Û Объект класса TDataSource Û Объект класса TDBGrid или класса TDBЕdit
![]() |
Рис. 5.1
Рассмотрим подробнее атрибуты, методы и события, связанные с данными классами.
1. Класс TTable обеспечивает доступ к конкретной таблице БД в целом. Это наиболее важный и сложный класс и будет далее рассмотрен подробно.
2. Класс TDataSource обеспечивает связь визуальных компонентов (TDBGrid или TDBЕdit) со множеством данных БД. Связь осуществляется через класс TDataSet, поэтому основной атрибут класса - DataSet, в котором задается имя объекта, непосредственно связанного с набором данных БД. Класс TDataSet – предок класса TTable, объекты которого представляют конкретные таблицы БД. Для доступа к результатам запросов (см. лекцию 7) используются объекты другого наследника TDataSet – класса TQuery. Наиболее интересное событие класса TDataSource – OnDataChange, которое происходит при изменении связанных с объектом данных, позволяет их отслеживать, обрабатывать, сообщать о них пользователю.
3. Класс TDBGrid («сетка») обеспечивает возможность отображения и редактирования данных в виде таблицы, строки которой соответствуют записям таблицы БД, а столбцы – полям записи. Свойство DataSource содержит имя компонента-источника TDataSource, который ссылается на соответствующую таблицу. Изменяя значение свойства DataSource во время выполнения, можно использовать один и тот же компонент TDBGrid для показа содержимого различных наборов данных.
Для определения состава столбцов в TDBGrid используется редактор столбцов (Columns Editor). В окне редактора устанавливаются значения свойств объектов-столбцов. Текущие значения свойств определяют способ отображения столбцов в сетке. Если в процессе выполнения приложения программно изменять то или иное свойство столбца, то эти изменения немедленно отобразятся. Например, в ходе выполнения можно менять ширину столбца (свойство DisplayWidth связанного со столбцом объекта TField), его видимость (Visible), возможность редактирования значения столбца (ReadOnly), порядковый номер (Index), заголовок столбца (DisplayLabel).
К основным событиям данного класса можно отнести следующие: OnCellClick – возникает при щелчке мыши на ячейке; OnDblClick – возникает при двойном щелчке мыши; OnTitleClick - возникает при щелчке по заголовку; OnColEnter – возникает сразу после того, как ячейка становится активной («получает фокус»); OnColExit – возникает перед тем, как ячейка перестает быть активной («теряет фокус»).
Стандартно реализованы следующие способы работы пользователя с информацией из таблиц.
- Пользователь может работать в каждый момент времени только с одним полем одной записи таблицы. Эта запись называется текущей и помечена в левом столбце значком ►. Ячейка таблицы, с которой работает пользователь в данный момент времени, называется активной и выделяется цветом.
- Переход вверх и вниз между записями и по текущей записи осуществляется соответствующими стрелками, клавишей Tab или с помощью курсора мыши. При переходе вниз от последней записи автоматически создается новая запись, помечаемая значком *.
- При внесении изменений в текущее поля происходит переход в режим редактирования.
- Внесение изменений в таблицу БД и выход из режима редактирования происходит после перехода к другой записи. Отказаться от изменений и выйти из режима редактирования можно по клавише Esc.
- Удалить текущую запись можно, нажав одновременно клавиши Ctrl и Del.
4. Класс TDBЕdit обеспечивает возможность отображения и редактирования одного поля текущей записи таблицы. Функции данного класса аналогичны функциям класса TEdit, но источником данных и их приемником в этом случае служит поле таблицы. Свойство DataSource содержит имя компонента-источника, который ссылается на соответствующую таблицу, а свойство DataField – имя соответствующего поля. При вводе значения в компонент автоматически отслеживается его совместимость с типом поля таблицы. Ввод неправильных значений блокируется, и выдается сообщение об ошибке. Например, произойдет ошибка, если в компонент, связанный с полем числового типа или типа дата-время, попытаться ввести произвольный текст.
Основные свойства, методы и события этого класса аналогичны свойствам, методам и событиям класса TEdit с учетом специфики класса TDBЕdit.
5. Класс TDBNavigator позволяет осуществлять навигацию по записям таблицы, переводить таблицу в состояние вставки, изменения, добавления записи, запоминать изменения. Свойство DataSource содержит имя компонента-источника, который ссылается на соответствующую таблицу. Свойство VisibleButtons состоит из множества свойств с логическими значениеми, каждое из которых соответствует некоторой кнопке навигатора: nbFirst – перейти к первой записи; nbPrior – перейти к предыдущей записи; nbNext – перейти к следующей и т.д. Кнопка отображается на Навигаторе, если соответствующее ей свойство имеет значение Тrue. Наиболее часто используется событие OnClick, которое возникает при щелчке мыши на кнопке Навигатора.
5.2. Классы TField и TTable: основное назначение и свойства
5.2.1. Класс TField: основное назначение и свойства
Класс TTable обеспечивает доступ к конкретной таблице БД в целом, а класс TField обеспечивает программисту разнообразные возможности для работы с составляющими таблицы - полями:
· изменение значения поля текущей записи;
· преобразование значения поля текущей записи от одного типа данных к другому;
· проверка данных, вводимых пользователем в поле таблицы (для проверки ошибок ввода);
· определение способов отображения или редактирования полей таблицы;
· определение вычисляемых (calculated) полей на основе реальных полей БД;
· определение связанных (lookup) полей (полей из другой таблицы БД).
Класс TFieldимеет множество свойств и методов. Рассмотрим только некоторые из них, обеспечивающие доступ к значениям полей таблицы:
AsBoolean, AsCurrency, AsDateTime, AsFloat, AsInteger, AsString, AsVariant - позволяют считывать значение из поля текущей записи или записывать в него значение с учетом указанных преобразований.
DataSet – связанная таблица или запрос.
EditMask – маска для форматирования значения поля.
FieldName – имя поля.
FieldNo – порядковый номер поля в связанной таблице или запросе.
LookupDataSet, LookupKeyFields LookupResultFields – только для связанных полей: таблица-справочник, список полей-ключей исходной таблицы, список полей-результатов таблицы-справочника (см. Лекция 6).
ReadOnly - определяет, можно ли поле редактировать (False) или нет (True).
Value – позволяет считывать значение из поля текущей записи или записывать в него значение.
Visible – определяет, можно отображать поле в визуальных компонентах (True) или нет (False).
К основным методам, знание которых необходимо при первоначальном изучении, относятся: аssign – копирует значения из поля связанного множества данных в свойство Value; с lear – очищает значение поля.
Из событий, связанных с классом TField, выделим событие OnChange, возникающее после изменения значения поля.
5.2.2. Класс TТable: основное назначение
Класс TTable наследует классу TDataSet и обеспечивает связь таблиц БД через объекты класса TDataSource с визуальными компонентами.
Объект класса представляет совокупность записей (набор данных, НД) из определенной таблицы БД. Класс выполняет следующие «роли»:
· открытие и закрытие доступа к физической таблице БД;
· отбор записей по заданному критерию (установка фильтров);
· поиск записей;
· установка индексов для последовательности перехода по таблице БД и ускорения поиска;
· «навигация» по таблице БД;
· добавление, удаление записей;
· доступ к значениям полей текущей записи таблицы;
· обеспечение связи с другими таблицами БД.
Для обеспечения связи приложения с таблицей БД необходимо установить на форме или в модуле данных приложения компонент Table, представляющий объект класса TTable, и задать необходимые значения его свойствам.
Для обеспечения этих функций используются разнообразные свойства и методы.
В дальнейшем будем предполагать, что компонент Table1 представляет таблицу с полями БД: Name (A), Name_Subject (A) и Mark (S), представляющую таблицу оценок по различным предметам, полученных студентами во время сдачи экзаменов в сессию.
Дата публикования: 2014-12-11; Прочитано: 276 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!