- •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. Бд "поставщик книг"
- •Рекомендованная литература
Создание проекта с бд в технологии bde
Особенности использованияbdeдля соединения с источником данных
Как уже отмечалось, механизм BDE имеет развитые средства по работе с таблицами самых распространенных СУБД: файл-серверных (FoxPro, Paradox, и т.д.), локальных - содержащих БД в виде одного файла (Access), и клиент-серверных (InterBase, Microsoft SQL Server, Informix, Oracle, Sybase, MySQL, PostgreSQL и др.).
Рисунок 3.10 –Структура взаимодействия приложения с БД
Следует подчеркнуть, что механизм BDE в своей основе ориентирован на работу с файл-серверными БД. Однако путем применения дополнительных средств – драйверов ODBC, имеется возможность подключения к локальным и клиент-серверным БД.
Создание таблиц локальных и клиент-серверных БД обычно осуществляется с помощью соответствующих СУБД. Однако эти таблицы могут быть созданы и из приложения пользователя, что показано в соответствующих разделах данного пособия.
Подключение локальных или клиент-серверных БД, осуществляется с помощью драйвера (коммутационного интерфейса) Open DataBase Connectivity (ODBC). Состав драйверов ODBC на вашей машине может быть расширен за счет подключения новых драйверов, например, для работы с СУБД MySQL Server или PostgreSQL.
В учебных целях в рамках настоящего пособия будет использована клиент-серверная СУБД PostgreSQL, подключаемая с помощью ODBC. Однако не составляет труда использовать для этого любую локальную или клиент-серверную СУБД типа свободнораспространяемых MySQL или Oracle Express.
Для демонстрации последующих примеров создайте папку Biblioteka, а ней папку Release. Используя средства СУБД PostgreSQL, создайте БД BiblData с перечисленными выше таблицами: NAKLS, BOOKS, FIRMS, MOVEBOOK, PAYMENTS и TYPENAKL. Свяжите отношением "один ко многим" таблицы NAKLS и MOVEBOOK, используя для этого поле NakllD таблицы NAKLS и поле mNakl таблицы MOVEBOOK, предусмотрев обеспечение целостности данных и каскадое удаление данных.
Структура проекта с бд и визуальными компонентами
Общая структура проекта с БДможет быть представлена в2-х вариантах - начальном и расширенном. Оба варианта работоспособны, но расширенный вариант позволяет, в частности, улучшить визуальный интерфейс програмного приложения в соответствии с требованиями конечного пользователя.
Начальный вариант структуры проекта с БДимеет следующий вид
Рисунок 3.11 – Структура проекта с БД и визуальными компонентами
Таким образом, непосредственно в проекте программист должен создать компоненты 3-х типов -наборы данных,источники данныхивизуальные компоненты.
Активизация проекта
Перед созданием проекта следует создать папку для этого проекта, например Biblioteka, а в ней папку Release и папку Source. В папке Source будут распологаться модули разрабатываемого проекта, а в папке Release работающее приложение.
Начните новый проект. В главном меню выберите Project>Options. В появившемся окне выберите закладку Directories/Conditionals. В поле Output directory укажите путь
"..\Release\"
из папки Sourse к папке Release. Теперь после каждой трансляции исходных модулей проекта результат трансляции в виде работающего приложения будет размещаться в папке Release.
Такое построение проекта создаст дополнительные удобства при переносе приложения.
Рисунок 3.12 –Окно свойства проекта