
- •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 (Borland Database Engine - машина баз данных корпорации Borland) представляет собой набор библиотек DLL, предназначенных для низкоуровнего доступа к данным самых разных форматов. BDE автоматически устанавливается в процессе установки Delphi и регистрируется в реестре 32-разрядной версии Windows.
BDE имеет развитые средства по работе с таблицами самых распространенных СУБД: локальных (Access), файл-серверных (Paradox, FoxPro, и др.) и клиент-серверных (InterBase, Informix, Oracle, Sybase, Microsoft SQL Server, MySQL, PostgreSQL и др.).
В BDE имеется собственный интерпретатор языка SQL, что позволяет создавать запросы не только к локальным БД и серверам БД, но и таблицам файл-серверов.
Так как BDE для Delphi фактически является заменителем (имитатором) разнородных БД, то BDE должен имитировать все те элементы, которые присущи реальным (физическим) БД. К ним относятся абстрактные БД, таблицы, запросы и т.д. В Delphi они представлены с помощью специальных классов и компонент закладки BDE. Таким образом, взаимодействие с реальной БД в Delphi подменяется взаимодействием со специально созданными компонентами работы с базами данных, которые через BDE "умеют" взаимодействовать с реальными элементами соответствующих БД.
Без установки и регистрации BDE на компьютере не может работать ни одна программа БД, созданная в Delphi и использующая механизм BDE. Это обстоятельство несколько затрудняет распространение программ, так как вместе с программой должен поставляться и набор библиотекBDE. Однако эти затруднения легко преодолеваются путем создания дистрибутивных (инсталяционных) дисков поставляемых приложений, для чего предназначена утилитаInstallShield Express Borland, поставляемая сDelphi.Эта утилита позволяет собрать вместе файл или файлы БД, файлы BDE и псевдоним БД(см. далее).
В Delphi 7имеются технологии, позволяющие обойтись безBDE:
ADO;
InterBase Express;
dbExpress.
Технология InterBase Expressможет работать только с серверамиInterBaseверсии5.5и выше.
Технология dbExpressпозволяет обращаться непосредственно кSQL-серверамInterBase,MySQL,Oracle,DB2 и т.д.
Особенности технологии ado
Технология ADO(ActiveXDataObjects— объекты данных, построенные как объектыActiveX) активно развивается корпорациейMicrosoft. Основные особенности использования технологииADOне зависят от архитектурыБД. Эта технология характерна для файл-серверных, клиент-серверных и трехзвенныхБД. Она обеспечивает универсальный способ доступа к самым разнообразным источникам данных — от серверовSQLдо электронных таблиц типаExcel.
Основным достоинством технологии ADOявляется ее естественная ориентация на созданиеоблегченного (тонкого)клиента.
В рамках этой технологии:
На машине клиента - разработчикаБДустанавливаютсябазовые объектыMSADO (C:\Program Files\Common Files\System\ADO).В случае программных систем других производителей, напримерDelphi, устанавливаются соответствующиекомпоненты, обеспечивающие использование технологииADO. В случаеDelphiустановки таких компонент осуществляются автоматически при развертыванииDelphi.
На машине сервера данныхустанавливаетсяпровайдер (поставщик)данных— надстройка над специальной технологиейOLE DB, которая воспринимает запросы объектовADOи переводит их в нужные действия с данными вБД.
Взаимодействие компонент ADOи провайдера данных осуществляется на основе универсальной дляWindowsтехнологииActiveX, причем провайдер реализуется какСОМ-сервер, аADO-компоненты — какСОМ-клиенты.
На машине сервера БДсоздается и размещаетсяисточник данных (Data Source). В случае файл-серверных систем отдельные таблицы типаdBASE,FoxPro,Paradoxи т. п. должны управляться соответствующимOpen DataBase Connectivity (ODBC) - драйвером, а в роли провайдера данных используетсяMicrosoftOLE DBProvider for ODBC drivers. Если по каким-либо причинам нe найден нужный драйвер, файл-серверные таблицы можно перенести в формат.mdbСУБДMSAccess. На их основе создается единый файл, содержащий все необходимые таблицы, индексы, хранимые процедуры и прочие элементыБД. Такой файл.mdbуправляетсямашиной баз данныхMicrosoft Jet 4.0 Database Engine, а в роли провайдера используетсяMicrosoft Jet 4.0 OLE DB Provider.
Если используется промышленный сервер БД типаOracleилиMS SQL Server, данные не нуждаются в какой-либо предварительной подготовке, а в роли провайдера используется соответственноMicrosoftOLE DB Provider forOracleилиMicrosoftOLE DBProvider forSQL Server.
К сожалению, технология ADOне может использоваться, если для соответствующей структуры данных не создан нужный провайдер илиODBC-драйвер. Так, например, для серверовБД—InterBase,Informix,DB2и ряда других на сегодня нужныеOLE DB провайдеры отсутствуют. Однако, для некоторых из них, напримерInformix, можно найти соответствующиеODBC-драйверы.