КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Изменение структуры таблицы. Структуру созданной таблицы можно изменитьСтруктуру созданной таблицы можно изменить. Для этого необходимо выбрать элемент меню Tools | Utilities | Restructure, выбрать таблицу и произвести необходимые изменения в структуре таблицы. Можно добавлять, удалять поля, изменять их типы и имена. В некоторых случаях система попросит подтвердить выполнение действий.
Открытие и сохранение таблицы
Для изменения данных, хранящихся в таблице, таблицу необходимо «открыть». Открытие таблицы происходит с помощью подменю File | Open. Внесение изменений (добавление/удаление записей, изменение значений полей конкретных записей и т.д.) происходит только в режиме редактирования. Для перехода в режим редактирования необходимо нажать клавишу F9. Сохранение изменений в таблице происходит по выбору пунктов меню File | Save илиFile | SaveAs. Перед сохранением изменений необходимо выйти из режима редактирования, повторно нажав клавишу F9. Дополнительные утилиты
Рассмотрим некоторые дополнительные возможности, которые среда Database Desktop предоставляет для работы с таблицами. Эти возможности доступны через пункт меню Tools | Utilities: Add – добавить записи из одной таблицы в другую (структуры должны совпадать); Copy – копировать одну таблицу в другую; Delete – удалить таблицу; Empty – опустошить таблицу (удалить все записи); Info Structure – показать структуру таблицы; Rename – переименовать таблицу; Sort – отсортировать таблицу по значениям каких-либо полей; Restructure – изменить структуру таблицы; Subtract – удалить из таблицы записи, совпадающие с записями другой таблицы (записи должны совпадать).
Лекция 5. Основные классы, обеспечивающие доступ к таблицам БД: назначение, свойства, методы Взаимодействие классов, обеспечивающих доступ к таблицам Назначение любого БД-приложения – обеспечить пользователю удобный интерфейс для работы с информацией, представленной в таблицах базы данных. Рассмотрим основные классы среды Delphi, обеспечивающие программиста разнообразными возможностями для реализации такого интерфейса. Классы объектов, обеспечивающие доступ к таблицам БД, связаны между собой следующим образом: Набор данных БД (физическая таблица БД или результат запроса) Û Объект класса TTable или TQuery Û Объект класса TDataSource Û Объект класса TDBGrid или класса TDBЕdit Поясним предложенную схему. Данные из таблицы БД или результат запроса по таблицам БД представляются объектами классов TTable или TQuery соответственно. Классы TTable и TQuery связываются с объектом класса TDataSource, а уже объект класса TDataSource непосредственно связывается с визуальными компонентами DBGrid или DBЕdit, обеспечивающими отображение данных и возможность внесения изменений. На рис. 5.1 представлена форма с необходимыми компонентами для представления информации из одной таблицы БД. Рис. 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), представляющую таблицу оценок по различным предметам, полученных студентами во время сдачи экзаменов в сессию.
|