- •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. Бд "поставщик книг"
- •Рекомендованная литература
Завершение настройки связи
Щелкните (рисунок 10.3) на кнопке ОК. Связь готова. Чтобы в дальнейшем связь с БД устанавливалась без открытия промежуточного диалогового окна с запросом имени пользователя и пароля, поместите в свойство LoginPrompt компонента ADOConnection1 значение False.
Настройка оставшихся компонент модуля данных
В свойстве Connection созданных компонентов-таблиц ADOTable сошлитесь на компонент ADOConnection1. Этого можно не делать, если вы поместили таблицы непосредственно на дерево компонентов. В этом случае связи устанавливаются автоматически.
В свойстве TableName компонентов ADOTable выберите соответствующие таблицы БД.
В свойстве DataSet компонентов DataSource1 и DataSource2 сошлитесь соответственно на таблицы tbNakls и tbMove.
Свяжите таблицы tbNakls и tbMove отношением главная-детальная как это рассматривалось в разделе 3 или установите в свойство MasterSource таблицы ADOTable2 ссылку на источник данных DataSource1 и щелкните на кнопке с многоточием в строке свойства MasterFields, чтобы вызвать окно настройки связи. После чего выполните те же действия, что и в разделе 3.
Выполните настройку объектов-полей, возможно присоединяемых и вычисляемых, в таблицы tbNakls и tbMove, как показано в разделе 3.
Примечание. Для того чтобы преобразовать разработанный вами в технологии BDE проект с сохранением всех текстов программ, вам фактически необходимо преобразовать модуль данных исходного проекта в соответствии с описанными выше шагами, сохраняя наименования таблиц и полей неизменными.
Особенности использования компонентов ado
Базовые объекты ado
MS ADO имеет 7-мь базовых объектов: Connection, Recordset, Command, Parameter, Field Error и Property.
КомпонентыADOв палитре компонентовDelphiпредставляют собой надстройки над базовыми объектами, представляя большинство их свойств методов и событий в привычном дляDelphiвиде.
Объект Connection
Объект Connectionв первую очередь предназначен для установления соединения с данными. Кроме того, этот объект обеспечивает механизм транзакций. На него может ссылаться произвольное количество объектовCommandиRecordset. В этом случае объектConnectionуправляет транзакциями этих объектов. С объектомConnectionсвязан набор объектовError, в котором фиксируются все ошибки, связанные с работой объектаConnection.
ОбъектRecordset
Объект Recordsetпредставляет собой текущийНД. Он может быть получен только после выполнения методаExecuteкакого-либо объектаCommand. С объектомRecordsetавтоматически связывается набор объектовField, в которых описываются все поляНД. ОбъектRecordsetспособен хранить нужные записи, перемещаться по ним, добавлять, удалять и редактировать записи как в обычном (при одновременном изменении физических таблицБД), так и в пакетном режиме (то есть при кэшировании данных). При создании объектаRecordsetавтоматически создается и связанный с нимкурсор, обеспечивающий просмотр, редактирование и изменение записей.
ОбъектCommand
С помощью объекта Commandпользователь может выполнить над данными любуюSQL-команду. С ним может быть связан набор объектовParameter, в котором описываются соответствующие параметры, необходимые для выполнения запроса. Характерной особенностью объектаCommandявляется возможность асинхронного выполнения связанной с ним команды. При обнаружении ошибки с объектомCommandсвязывается своя коллекция объектовError.
Примечание. ОбъектуCommandсоответствуют целых4компонентаDelphi:TADOCommand,TADOTable,TADOQueryиTADOStoredProc. Сделано это, судя по всему, в целях унификации с компонентами вкладкиBDE, хотя возможностиTADOCommandво многом подобны возможностямTADOTable, и наоборот.