- •Bde та ado
- •Введение
- •Введение в базы данных
- •Типы субд
- •Стандарт odbc
- •Технологии взаимодействия delphi с бд
- •Особенности технологии bde
- •Особенности технологии ado
- •Таблицы бд и связи между ними
- •Первичные ключи и индексы
- •Демонстрационная бд "поставщик книг"
- •Использование odbc для подключения источника данных. Внешний псевдоним бд
- •Создание внешнего псевдонима бд
- •Создание проекта с бд в технологии bde
- •Особенности использованияbdeдля соединения с источником данных
- •Структура проекта с бд и визуальными компонентами
- •Активизация проекта
- •Главная форма проекта
- •Модуль данных
- •Создание модуля данныхTDataModule
- •Создание компонента tDatabase
- •Создание компонента tTable
- •Создание компонентаTDataSource
- •Связь модуля главного окна с модулем данных
- •Связь сеткиTdbGrid и навигатораDbNavigatorcисточником данныхTDataSource
- •Связь главный-детальный между наборами данных
- •Задание реляционной связи между наборами данных
- •Активизация наборов данных
- •Недостатки полученных решений и пути их устранения
- •Объекты-столбцы сетки dbGrid
- •Объекты-поля наборов данных
- •Создание объектов-полей
- •Присоединение к наборам данных новых полей
- •Присоединение полей из других таблиц. Подстановочные поля
- •Вычисляемые поля
- •Обработчики событий компонент работы с бд
- •Обработчики событий OnGetText полей нд и компонента визуализации данныхTdbGrid
- •Установка системных переменных в обработчике событяOnCreate
- •Бизнес-правила иобработчики событий компонент работы с бд
- •Implementation
- •Sql запросы к бд
- •КомпонентtQuery
- •СозданиекомпонентаtQuery
- •ИспользованиякомпонентаtQuery
- •Свойство sql
- •Методы Open и ExecSql
- •Параметрические запросы
- •Параметрические запросы и свойство DataSource компонента tQuery
- •Связь главный-детальный с компонентомTQuery в качестве детального набора данных
- •Доступ к полям запроса
- •Обращение к значению поля при помощи свойств объектов-полейValueиAsXxxx
- •Обращение к значению поля при помощи свойств набора данных Fields и FieldValues
- •Обращение к значению поля при помощи функции набора данных FieldByName
- •Программный доступ к данным запроса
- •Общая схема программного доступа к данным запроса
- •Последовательная навигация по записям
- •Обзор событий компонентаtQuery
- •Хранимые процедуры и триггеры
- •Хранимые процедуры
- •Создание хранимых процедур
- •Вызов хранимых процедур
- •Триггеры
- •Наборы данных
- •Обзор событий класса tdbDataSet
- •Реализация каскадных изменений и бизнес-правил
- •Другие события
- •Технология ado
- •Основные особенности технологии ado
- •Реализация технологии ado в Delphi
- •Создание проекта с бд в технологии ado. Установка связи с бд
- •Создание модуля данных
- •Начало настройки связи
- •Выбор провайдера
- •Настройка провайдера
- •Настройка провайдераMicrosoftJet4.0oledbProvider
- •Настройка провайдера Microsoft ole db Provider for odbc Drivers
- •Завершение настройки связи
- •Настройка оставшихся компонент модуля данных
- •Особенности использования компонентов ado
- •Базовые объекты ado
- •ОбъектRecordset
- •ОбъектCommand
- •ОбъектParameter
- •Компонент tadoCommand
- •Свойства, методы и события ado компонентов-наборов
- •Общие свойства с bde-компонентами
- •Специфические свойства
- •Методы класса tCustomAdoDataSet
- •События класса tCustomAdoDataSet
- •Компонент tadoDataSet
- •Компонент tadoTable
- •Компонент tadoQuery
- •Компоненты визуализации данных вDelphi
- •Компонент tdbGrid
- •Свойства
- •Дополнительные возможности сетки
- •Компоненты визуализации полей текущей записи
- •Компонент tdbText
- •Компонент tdbEdit
- •Компонент tdbCheckBox
- •Компонент tdbRadioGroup
- •Списочные компоненты
- •Компонент tdbMemo
- •Компонент tdbRichEdit
- •Компонент tdbCtrlGrid
- •Компонент tdbNavigator
- •Приложение 2. Бд "поставщик книг"
- •Рекомендованная литература
Недостатки полученных решений и пути их устранения
Если на этом этапе выполнить прогон программы, то можно увидеть, что сетки связаны друг с другом. При перемещении указателя текущей записи в верхней сетке DBGrid1 автоматически меняется содержимое нижней сетки DBGrid2.
Однако визуально данные использовать практически невозможно, так как:
В заголовках колонок сеток DBGrid1 и DBGrid2 указаны наименования соответствующих полей (столбцов) таблиц БД "Поставщик книг", которые имеюют сокращенные наименования на английском языке.
Вместо имен партнеров или наименований книг в соответствующих колонках сетки DBGrid1 видны лишь их идентификаторы в таблице NAKLS базы данных, а не их имена в таблицах FIRMS и BOOKS;
Устранить указанные недостатки можно путем использования объектов-столбцов (проект Chapt04\FieldValues\BiblosPrg.dpr).
Объекты-столбцы сетки dbGrid
Механизм создания для сетки DBGrid специальных компонент - объектов-столбцов, облегчает управление отображением данных. С их помощью можно изменять шрифт и цвет колонок, формировать их заголовки и т. д.
Для создания объектов-столбцов нужно вызвать редактор столбцов сетки DBGrid (рисунок 3.26). Для этого необходимо перейти к форме fmNaklsU главного окна и дважды щелкните мышью на соответствующей сетке DBGrid.
Рисунок 3.32 –Окно редактора столбцов
Таблица 3.1 - Значения свойств FieldName, Caption и Size объектов-столбцов для сетокDBGrid1 и DBGrid2
Field Name |
Title/Caption |
Width |
Компонент DBGrid1 | ||
NaklId |
№накл |
80 |
NData |
Дата |
60 |
Firm |
Партнер |
150 |
Type |
Тип накладной |
130 |
NSum |
Сумма |
60 |
NPayedSum |
Оплата |
60 |
NRetSum |
Возврат |
60 |
NCoeff |
Коэффициент |
35 |
NRetDate |
Срок |
60 |
Компонент DBGrid2 | ||
Name |
Название книги/Автор/Издательство |
500 |
MQuan |
Количество |
40 |
MPrice |
Цена |
45 |
MSumma |
Сумма |
80 |
Чтобы создать объект-столбец, нужно щелкнуть на кнопке Add New редактора столбцов или нажать клавишуIns. Выделив (щелчком) появившийся в окне компонент TColumn, можно с помощью инспектора объектов менять свойства этого компонента.
Раскройте список свойства FieldName редактируемого компонента и выберите поле NaklID. Раскройте список вложенных свойств сложного свойства Title и в его вложенное свойство Caption введите заголовок столбца - № накл. Поместите в свойство Width (Size) ширину колонки 40 (в пикселах экрана). Руководствуясь таблицей 3.1, создайте остальные объекты-столбцы для сеток.
Другим решением является использование кнопки Add All Fields . В результате, в редактор столбцов будут добавлены компонентыTColumn для всех объектов-столбцов, после чего ненужные объекты-столбцы могут быть удалены, а оставшиеся отредактированы.
Если в сетке нужны не все объекты-столбцы, то лишние могут быть удалены.
Для удобства расположения данных в сетке DBGrid, в редакторе столбцов объекты-столбцы можно перемещать вверх и вниз.
Рисунок 3.33 –Заполненное окно редактора столбцов
Внимание! Действует следующее правило: если для сетки DBGrid не создан ни один объект-столбец, в ней отображаются все не "спрятанные" объекты-поля, но если в сетке создан хотя бы один объект-столбец, сетка будет отображать данные только из явно созданных объектов-столбцов.