- •Технології проектування баз даних в delphi
- •6.051001 - Метрологія та інформаційно-вимірювальні технології
- •Технології проектування баз даних в delphi
- •6.051001 - Метрологія та інформаційно-вимірювальні технології
- •1Введение
- •2Введение в базы данных
- •2.1Типы субд
- •2.2Стандарт odbc
- •2.3Технологии взаимодействия delphi с бд
- •2.3.1Особенности технологии bde
- •2.3.2Особенности технологии ado
- •2.4Таблицы бд и связи между ними
- •2.5Первичные ключи и индексы
- •2.6Демонстрационная бд "поставщик книг"
- •3Использование odbc для подключения источника данных. Псевдонимы бд
- •3.1Внешний и внутренний псевдонимы бд
- •3.1.1Создание внешнего псевдонима
- •3.1.2Проверка работоспособности внешнего псевдонима в среде Delphi
- •3.2Внутренний псевдоним бд
- •3.2.1Назначение внутреннего псевдонима бд
- •3.2.2Создание внутреннего псевдонима
- •3.2.3Преимущества использования внутреннего псевдонима и проблемы перехода на другие субд
- •4Создание проекта с бд в технологии bde
- •4.1Особенности использования bde для соединения с источником данных
- •4.2Структура проекта с бд и визуальными компонентами
- •4.3Активизация проекта
- •4.4.4Компоненты tdbGrid
- •4.5Модуль данных
- •4.5.1Создание модуля данных tDataModule
- •4.5.2Связь модуля главного окна с модулем данных
- •4.5.3Создание компонента tDatabase
- •4.5.4Создание компонента tTable
- •4.5.5Создание компонента tDataSource
- •4.5.6Связь модуля главного окна с модулем данных
- •4.5.7Связь сетки tdbGrid и навигатора dbNavigator c источником данных tDataSource
- •4.5.8Связь главный-детальный между наборами данных
- •4.5.9Задание реляционной связи между наборами данных
- •4.5.10Активизация наборов данных
- •4.5.11Недостатки полученных решений и пути их устранения
- •4.6Объекты-столбцы сетки dbGrid
- •4.6.1Создание объектов-столбцов
- •4.6.2Редактирование объекта-столбца
- •4.7Объекты-поля наборов данных
- •4.7.1Назначение объектов-полей
- •4.7.2Создание объектов-полей
- •4.7.3Присоединение к наборам данных новых полей
- •4.7.4Присоединение полей из других таблиц. Подстановочные поля
- •4.7.5Вычисляемые поля
- •4.8Обработчики событий компонент работы с бд
- •4.8.1Обработчики событий OnGetText полей нд и компонента визуализации данных tdbGrid
- •4.8.2Установка системных переменных в обработчике событя OnCreate
- •4.9Бизнес-правила и обработчики событий компонент работы с бд
- •5Sql запросы к бд
- •5.1Компонент tQuery
- •5.2Создание компонента tQuery
- •5.3Использования компонента tQuery
- •5.3.1Свойство sql компонента tQuery
- •5.3.2Методы Open и ExecSql
- •5.3.3Схема программного формирования sql-запроса
- •5.3.4Параметрические запросы
- •5.3.5Параметрические запросы и свойство DataSource компонента tQuery
- •5.3.6Связь главный-детальный с компонентом tQuery в качестве детального набора данных
- •5.4Доступ к полям запроса
- •5.4.1Обращение к значению поля при помощи свойств объектов-полей Value и AsXxxx
- •5.4.2Обращение к значению поля при помощи свойств набора данных Fields и FieldValues
- •5.4.3Обращение к значению поля при помощи функции набора данных FieldByName
- •5.5Программный доступ к данным запроса
- •5.5.1Общая схема программного доступа к данным запроса
- •5.5.2Последовательная навигация по записям
- •5.6Обзор событий компонента tQuery
- •6Хранимые процедуры и триггеры
- •6.1Хранимые процедуры
- •6.2Создание хранимых процедур
- •6.3Вызов хранимых процедур
- •6.4Триггеры
- •7Наборы данных
- •7.1Обзор событий класса tdbDataSet
- •7.1.1Реализация каскадных изменений и бизнес-правил
- •7.1.2Другие события
- •8Технология ado
- •8.1Основные особенности технологии ado
- •8.2Реализация технологии ado в Delphi
- •8.3Создание проекта с бд в технологии ado. Установка связи с бд
- •8.3.1Создание модуля данных
- •8.3.2Начало настройки связи
- •8.3.3Выбор провайдера
- •8.3.4Настройка провайдера
- •8.3.5Настройка провайдера Microsoft Jet 4.0 ole db Provider
- •8.3.6Настройка провайдера Microsoft ole db Provider for odbc Drivers
- •8.3.7Завершение настройки связи
- •8.3.8Настройка оставшихся компонент модуля данных
- •8.4Особенности использования компонентов ado
- •8.4.1Базовые объекты ado
- •8.4.2Объект Recordset
- •8.4.3Объект Command
- •8.4.8Связной компонент tadoConnection
- •8.4.9Компонент tadoCommand
- •8.5Свойства, методы и события ado компонентов-наборов
- •8.5.1Общие свойства с bde-компонентами
- •8.5.2Специфические свойства
- •8.5.3Методы класса tCustomAdoDataSet
- •8.5.4События класса tCustomAdoDataSet
- •8.6Компонент tadoDataSet
- •8.7Компонент tadoTable
- •8.8Компонент tadoQuery
- •9Компоненты визуализации данных в Delphi
- •9.1Компонент tdbGrid
- •9.1.1Свойства
- •9.1.2Дополнительные возможности сетки
- •9.2Компоненты визуализации полей текущей записи
- •9.2.1Компонент tdbText
- •9.2.2Компонент tdbEdit
- •9.2.3Компонент tdbCheckBox
- •9.2.4Компонент tdbRadioGroup
- •9.2.5Списочные компоненты
- •9.2.6Компонент tdbMemo
- •9.2.7Компонент tdbRichEdit
- •9.2.8Компонент tdbCtrlGrid
- •9.2.9Компонент tdbNavigator
- •Приложение 2. Бд "поставщик книг"
- •Рекомендованная литература
9Компоненты визуализации данных в Delphi
Характерной особенностью визуализации данных (вкладка Data Controls) является их подключение к необходимым компонентам-наборам TTable и TQuery через связующие компоненты - источник данных TDataSource.
В этом разделе описываются основные приемы работы с компонентом-источником TDataSource и компонентами, предназначенными для визуализации данных:
в виде таблицы (сетки);
в виде формы.
Визуализация данных в виде таблицы (сетки) осуществляется с помощью компонента TDBGrid.
Визуализация данных в виде формы представляет собой обычную форму, на которую помещены компоненты визуализации отдельных полей текущей записи. Набор этих компонент достаточно обширен – TDBText, TDBEdit и т.д.
9.1Компонент tdbGrid
Компонент TDBGrid (сетка) отображает содержимое НД в виде таблицы, в которой столбцы соответствуют полям НД, а строки - записям.
9.1.1Свойства
Таблица 8.1 - Свойства класса TColumn
Свойство |
Описание |
type TColumnButtonStyle = (cbsAuto, cbsEllipsis, cbsNone); property ButtonStyle: TColumnButtonStyle; |
Определяет стиль назначенной столбцу кнопки: cbsAuto - столбец содержит кнопку раскрывающегося списка; cbsEllipsis - столбец содержит кнопку, щелчок по которой вызывает событие OnEditButtonClick; cbsNone - столбец не содержит кнопки |
property Color: TColor; |
Определяет цвет столбца |
property DisplayName: string; |
Содержит заголовок столбца |
property Field: TField; |
Содержит ссылку на связанное со столбцом поле НД |
property FieldName: string; |
Содержит имя связанного со столбцом поля НД |
property Font: TFont; |
Определяет шрифт столбца |
property PickList: TStrings; |
Определяет элементы раскрывающегося списка, если в ButtonStyle установлено значение cbsAuto |
property ReadOnly: boolean; |
Если содержит True, данные в столбце нельзя изменять |
property Title: TColumnTitle; |
Содержит ссылку на объект-заголовок, имеющий стандартные для визуальных компонентов свойства Alignment, Caption, Color и Font, позволяющие управлять текстом в заголовке столбца |
property Visible: boolean; |
Если содержит False, столбец не отображается в сетке |
property Width: integer; |
Содержит ширину столбца в пикселах |
9.1.2Дополнительные возможности сетки
У компонента есть свойство, с помощью которого можно управлять поведением и внешним видом сетки:
type TDBGridOption = (dgEditing, dgAlwaysShowEditor, dgTitles, dgIndicator, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgAlwaysShowSelection, dgConfirmDelete, dgCancelOnExit, dgMultiSelect);
TDBGridOptions = set of TDBGridOption;
property Options: TDBGridOptions;
Параметры здесь следующие:
dgEditing - разрешает изменение НД;
dgAlwaysShowEditor - при выделении столбца автоматически переводит его в режим редактирования;
dgTitles - показывает заголовки столбцов;
dgIndicator - показывает указатель текущей строки в самом левом фиксированном столбце;
dgColumnResize - разрешает пользователю с помощью мыши изменять ширину столбцов;
dgColLines - показывает в сетке вертикальные разделяющие линии;
dgRowLines - показывает горизонтальные разделяющие линии;
dgTabs - разрешает переход от столбца к столбцу с помощью клавиши Tab;
dgRowSelect - разрешает выделение цветом всей текущей строки;
dgAlwaysShowSelection - выделение текущей строки цветом сохраняется, даже если компонент теряет фокус ввода;
dgConfirmDelete - требует подтверждения удаления строки;
dgCancelOnExit - если пользователь вставляет пустую строку и покидает, ее, она не сохраняется в таблице БД;
dgMultiSelect - разрешает множественный выбор строк.
Следует отметить, что отсутствие в свойстве значения dgEditing защищает отображаемые в сетке данные от изменения независимо от значения свойства ReadOnly любого ее столбца. Точно так же защищает строки вставка в свойство значения gdRowSelected, кроме того, в этом случае из свойства автоматически удаляются значения dgEditing и dgAlwaysShowEditor (если, разумеется, они входили в множество Opt.ions; эти значения нельзя вставить в свойство, пока в нем присутствует значение dgRowSelected). В защищенной сетке нельзя изменить ни одной ячейки текущей строки, но можно удалить строку или вставить пустую строку (если в свойстве нет значения dgCancelOnExit). Если вы не собираетесь защищать данные, полезно вставить в свойство Options значение dgAlwaysShowEditor - в этом случае столбец автоматически переводится в режим редактирования, как только он получает фокус ввода; если это значение отсутствует, редактировать выделенный столбец можно после нажатия клавиши F2 или Enter либо после двойного щелчка на ячейке мышью.
