- •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. Бд "поставщик книг"
- •Рекомендованная литература
Создание модуля данныхTDataModule
Выберите команду File>New>Others, чтобы открыть окно хранилища объектов, и на вкладке New открывшегося окна дважды щелкните на значке Data Module.
В свойство Name модуля данных поместите значение DM и сохраните модуль в файле dmNaklsUnit. Чтобы связать модуль с проектом, щелкните на копкеAdd file to progect панели инструментов и выберите только что созданный файл dmNaklsU.
Создание компонента tDatabase
Для связи таблиц программы (5-ть компонентов TTable) с таблицами БД воспользуемся компонентом TDatabase на вкладке BDE палитры компонентов Delphi.
Щелкните на компоненте TDatabase, а затем - на имени модуля DM в окне дерева объектов. В окне дерева объектов слева от компонента TDatabase появится красный знак вопроса, означающий, что компонент TDatabase еще не готов к работе.
Рисунок 3.17 –Компонент TDatabase не готов к работе
В окне инспектора объектов раскройте список свойства AliasName (имя пседонима) и выберите созданный ранее псевдоним БД, например BiblDataPgSQL. В строке свойства DatabaseName напишите произвольное имя например, BblDat, так называемого локального псевдонима приложения, который создает компонент TDatabase. Использование в программе локального псевдонима приложения является средством BDE обеспечения независимости текста программы от имени БД. Локальный псевдоним приложения доступен только в той программе, в которой используется компонент TDatabase.
В поле Name компонента TDatabase задайте имя DB.
Рисунок 3.18 –Окно инспектора объектов компонента DB
После определения псевдонима БД на уровне BDE и создания локального псевдонима БД для создаваемой программы исчезнет красный знак вопроса слева от компонента в окне дерева объектов, что свидетельствует о готовности компонента к работе.
Рисунок 3.19- Окно дерева объектов модуля DM и компонента DB
Компонент TDatabase выполняет множество полезных функций, обеспечивающих связь программы с БД. В локальных и клиент-серверных системах только с его помощью можно реализовать транзакции - специальный механизм доступа к данным, повышающий их достоверность и непротиворечивость. Кроме того он способен передать серверу БД имя пользователя, его пароль и ряд других параметров, оптимизирующих связь с сервером и избавляющих пользователя программы от обязательной регистрации на сервере.
Создание компонента tTable
Перенесите в окно дерева объектов компонент TTable (вкладка BDE) и "положите" его на псевдоним ААА.
В окне инспектора объектов в свойстве DatabaseName нового компонента автоматически появится имя локального псевдонима ААА. Слева от компонента в окне дерева объектов появится красный знак вопроса, означающий, что компонент TTable еще не готов к работе.
Компонент TTable является набором данных (НД). Он преимущественно используется в файл-серверных системах для доступа к данным из какой-либо одной таблицы БД, когда таблица копируется на машину клиента и там обрабатывается.
Нами компонент TTable будет использован для создания первого варианта программного проекта с клиент-серверной системой, который затем будет модифицирован и вместо компонента TTable будет использован компонент TQuery.
В клиент-серверных системах копирование всей таблицы БД на машину клиента выполняется редко. Чаще всего выбирается часть таблицы, удовлетворяющая некоторому условию. Для получения требуемого набора данных обычно используется компонент TQuery, с помощью которого формирутся SQL-запросы (см. раздел 8). В общем случае, этот компонент позволяет получать связанные данные из нескольких таблиц.
Чтобы подготовить компонент TTable к работе, необходимо определить имя соответствующей таблицы. Для этого раскройте список его свойства TableName. На экране появится окно входа в БД с локальным псевдонимом ААА (рисунок 3.11).
Рисунок 3.20 –Окно входа в БД с локальным псевдонимом ААА
Введите пароль и логин и нажмите кнопку OK. В окне инспектора объектов выберите таблицу NAKLS обрабатываемой БД. В строке свойства Name таблицы Table1 введите tbNakls (рисунок 3.12).
Примечание. Имеет смысл называть именаНДименами связанных с ними таблиц физическойБДс соответствующим префиксом. Например, для таблицыNAKLS физическойБДимя компонентаTTable следует дополнить префиксомtbNakls и т.п.
Рисунок 3.21 –Окно инспектора объектов для таблицы tbNakls
После определения имени НД исчезнет красный знак вопроса слева от компонента в окне дерева объектов, что свидетельствует о готовности компонента к работе (рисунок 3.13).
Рисунок 3.22 –Окно дерева объектов
Примечание. При с оздании первых проектов, во избежание неясностей, для определяемых наборов данных рекомендуется сразу в поле Active задавать True.
Рисунок 3.23 –Окно инспектора объектов для таблицы tbNakls